我正在设计一个所有微服务都集群的架构。例如:5 个 Web 服务器、1 个集群数据库、1 个集群队列系统、8 个集群工作人员(如发送电子邮件、发送短信等),从队列中消费(任务由 Web 服务器推送)
我想知道最佳实践是为了检测每个“微服务集群”是否健康,以及在这种情况下如何让整个服务“快速失败”,其中一个微服务不可用。
所有服务都位于一个用于 ha 代理的 nginx 后面 - 是否应该是 nginx 监控所有内容并失败?如何检查所有微服务的健康状况?
我正在设计一个所有微服务都集群的架构。例如:5 个 Web 服务器、1 个集群数据库、1 个集群队列系统、8 个集群工作人员(如发送电子邮件、发送短信等),从队列中消费(任务由 Web 服务器推送)
我想知道最佳实践是为了检测每个“微服务集群”是否健康,以及在这种情况下如何让整个服务“快速失败”,其中一个微服务不可用。
所有服务都位于一个用于 ha 代理的 nginx 后面 - 是否应该是 nginx 监控所有内容并失败?如何检查所有微服务的健康状况?
您应该使用像Pingometer这样的外部监控服务。
这使您可以定期设置简单的运行状况检查(HTTP、HTTPS、Ping 等),并在节点出现故障、不可用或未响应正确内容时接收警报。
在您的联系人中,您可以设置一个 webhook,该 webhook 在服务出现故障时触发。您可以使用 webhook 触发故障转移、更改 DNS 记录等。
我们设置了类似的东西,它工作得很好。
您还可以在内部使用某些东西来监控 nGinX 本身(例如,廉价工人 + 重生他们),但这不会让您知道服务正在外部运行(就像监控服务一样)。