微服务设计模式-健康检查


问题陈述

微服务架构将应用程序构建为一组松散耦合的微服务,每个服务都可以以敏捷的方式独立开发,以实现持续交付/部署。现在,如果数据库出现故障或无法承受更多连接,那么监控系统应该发出警报。负载均衡器/服务注册表/API 网关不应将任何请求重定向到此类失败的服务实例。因此,我们需要检测正在运行的服务实例是否能够接受请求。

解决方案

我们可以为每个服务添加一个健康检查点,例如 HTTP /health,它返回服务健康状态。该端点可以执行以下任务来检查服务运行状况 -

  • 连接可用性- 数据库连接或当前服务使用的基础设施服务的连接的状态。

  • 主机状态- 主机的状态,如磁盘空间、CPU 使用情况、内存使用情况等。

  • 应用程序特定逻辑- 确定服务可用性的业务逻辑。

现在,监控服务(例如负载均衡器)、服务注册表定期调用健康检查端点来检查服务实例的健康状况。