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



问题陈述

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

解决方案

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

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

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

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

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

广告