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

问题说明

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

解决方案

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

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

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

  • 应用程序特定逻辑 − 业务逻辑决定服务可用性。

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