用于确定健康机器的 ping 替代方法

Alternative to ping for determining healthy machines

我们的优步服务由不同机器上的多项服务组成 运行。为确保服务健康且可访问,其他机器将定期向服务发送 "ping" 请求。确定 ping 的超时时间很棘手,我们不想等待太久(快速失败方法),但我们也不希望失败得太快(因为当负载很高时,ping 可以在接收队列中排队服务器和超时可能会发生,这可能导致故障转移导致级联)。我们还发现 ping 会阻塞网络。 我想知道是否有 ping 的替代方法(可能保持打开的 TCP 连接?)可以更好地识别机器变为 unhealthy/unreachable?

的情况

八卦协议可以显着减少您的健康流量,并且它们收敛得非常快。

你能在八卦之上建立一个健康系统吗?

作为替代方案,您的服务主机可以将心跳发送到中央服务,并且该服务可以是系统健康状况的标准。 Zookeeper 临时条目或类似系统可以满足要求。