如果服务太忙,是否应该将其标记为“不健康”?

时间:2019-01-04 06:38:50

标签: load-balancing microservices health-monitoring

运行状况检查就像一个简单的 ping-pong 测试一样,如果服务没有响应,则说明它不健康。如果有什么不健康的地方,应该发出警报。

但是,如果服务太忙却仍然响应(也许只是短时间的超载),我是否应该将该服务标记为不健康

大多数健康检查doesn't have a BUSY state只有SERVING和  NOT_SERVING状态

enum ServingStatus {
    UNKNOWN = 0;
    SERVING = 1;
    NOT_SERVING = 2;
}

连接忙碌的服务毫无意义。但是,由于它仍然可以正常工作,因此仍然可以算是一项健康的服务吗?

或者负载均衡器应该仍然可以连接到它,但是服务应该返回TOO_BUSY状态以拒绝传入的请求(然后为什么不将其标记为不健康 )?

1 个答案:

答案 0 :(得分:1)

未将其标记为不健康的原因:

  1. 如果您的服务经理重新启动运行不正常的服务,则可能造成更大的损失。
  2. 如果您由于服务不健康而不是因为服务繁忙而需要在凌晨3点醒来团队,那是在浪费团队的精力。
  3. 如果由于基础设施缺乏适当的形容词而导致服务不健康,请添加形容词。 最后也是最重要的是:
  4. 真正的问题是,为什么要阻止服务负载?您是否担心由于服务器忙于响应而导致请求失败?也许是时候扩展了。如果每当自动繁忙的负载开始神奇地缓解自身负担时,您的自动伸缩器将如何知道您的服务需要伸缩。自动缩放器需要该服务繁忙,以便可以扩展。如果您不使用自动缩放器,那么为什么要关心它是“忙”还是“不健康”?