【问题标题】:How should I healthcheck an event-driven service我应该如何对事件驱动的服务进行健康检查
【发布时间】:2021-09-29 17:11:20
【问题描述】:

假设我有一个服务而不是监听 http 请求,或者 gRPC 过程调用只使用来自代理(Kafka、rabbitMQ、Google Pub/Sub,你有什么)的消息。我应该如何对服务进行健康检查(例如 k8s liveness 和 readyness probes)?

该服务是否也应该仅出于健康检查的目的侦听 http 还是有其他可以使用的技术?

【问题讨论】:

    标签: asynchronous kubernetes microservices event-driven health-check


    【解决方案1】:

    让服务监听 HTTP 只是为了公开活动/准备情况检查(尽管在从消息代理提取输入的服务中,准备情况不一定是像 k8s 这样的容器调度程序会关心的事情)并不是真的一个问题(而且它还可能会暴露诊断和控制端点)。

    【讨论】:

      【解决方案2】:

      Kubernetes 支持三种不同类型的探针,另见Kubernetes docs

      • 运行命令
      • 发出 HTTP 请求
      • 检查 TCP 套接字

      因此,在您的情况下,您可以在服务不健康时运行失败的命令。

      还要注意liveness probes may be dangerous to use

      【讨论】:

        猜你喜欢
        • 2016-09-22
        • 2020-01-02
        • 1970-01-01
        • 1970-01-01
        • 2021-12-18
        • 2016-08-05
        • 1970-01-01
        • 1970-01-01
        • 2019-06-05
        相关资源
        最近更新 更多