服务健康检查

场景

多服务器运行后,偶尔有服务挂掉。

问题:

  • 某个应用服务器进程崩溃
  • 某个数据库连接池耗尽
  • 某个 Redis 实例内存溢出
  • 人工发现和恢复太慢

解决方案:健康检查

1. 健康检查端点

设计流程
1. 健康检查端点
  1. 步骤 1:检查健康状态并触发告警
  2. 步骤 2:刷新上游健康检查结果和路由配置
  3. 步骤 3:失败重试、熔断或降级
  4. 步骤 4:采集健康状态并触发告警
关注点:实例健康、转发策略、故障摘除和扩容验证。

2. 自动重启脚本

设计流程
2. 自动重启脚本
  1. 步骤 1:检查健康状态并触发告警
  2. 步骤 2:准备健康指标、阈值、兜底方案和恢复步骤
  3. 步骤 3:确认恢复状态、告警收敛和用户影响范围
  4. 步骤 4:确认恢复状态、告警收敛和用户影响范围
关注点:故障隔离、恢复路径、用户影响和告警收敛。

3. Systemd 服务配置

设计流程
3. Systemd 服务配置:运行配置
  1. 步骤 1:识别故障信号、受影响服务和降级边界
  2. 步骤 2:根据失败率、超时和依赖状态选择保护策略
  3. 步骤 3:返回降级或恢复结果,并记录告警和影响范围
关注点:故障隔离、恢复路径、用户影响和告警收敛。

4. 进程管理

设计流程
4. 进程管理
  1. 步骤 1:检查健康状态并触发告警
  2. 步骤 2:计算用量、账单或套餐状态
  3. 步骤 3:采集健康状态并触发告警
关注点:故障隔离、恢复路径、用户影响和告警收敛。

监控告警

设计流程
监控告警
  1. 步骤 1:检查健康状态并触发告警
  2. 步骤 2:检查健康状态并触发告警
  3. 步骤 3:写入队列并异步消费
  4. 步骤 4:采集健康状态并触发告警
关注点:故障隔离、恢复路径、用户影响和告警收敛。