健康检查

健康检查架构概述。如果为集群配置了健康检查,则会发出相应的统计信息。详见请参考统计相关文档。

HealthCheck

HealthCheck proto

  1. {
  2. "timeout": "{...}",
  3. "interval": "{...}",
  4. "interval_jitter": "{...}",
  5. "unhealthy_threshold": "{...}",
  6. "healthy_threshold": "{...}",
  7. "reuse_connection": "{...}",
  8. "http_health_check": "{...}",
  9. "tcp_health_check": "{...}",
  10. "redis_health_check": "{...}"
  11. }
  • timeout
    (Duration) 等待健康检查响应的时间。如果达到超时,则尝试健康检查将被视为失败。

  • interval
    (Duration) 每次尝试健康检查之间的时间间隔。

  • interval_jitter
    (Duration) 可选,抖动量(以毫秒为单位)。如果指定,在Envoy内部将抖动量叠加到时间间隔上。

  • unhealthy_threshold
    (UInt32Value) 在主机被标记为不健康之前,需要进行不健康的健康检查次数。请注意,对于http运行健康检查,如果主机以503响应,此阈值将被忽略,并且主机立即被视为不健康。

  • healthy_threshold
    (UInt32Value) 主机在标记为健康之前所需的健康检查次数。请注意,在启动过程中,只需要一次成功的健康检查即可将主机标记为健康状态。

  • reuse_connection
    (BoolValue) 健康检查之间复用健康检查连接。默认是true

  • http_health_check
    (HealthCheck.HttpHealthCheck) HTTP健康检查。

  • tcp_health_check
    (HealthCheck.TcpHealthCheck) TCP健康检查

  • redis_health_check
    (HealthCheck.RedisHealthCheck) Redis健康检查

    注意:只能在http_health_checktcp_health_checkredis_health_check选其中一个进行设置。

HealthCheck.Payload

HealthCheck.Payload proto

描述载荷中有效载荷的字节编码。

  1. {
  2. "text": "..."
  3. }
  • text
    (string, REQUIRED) 十六进制编码载荷,例如,“000000FF”。准确地说,必须设置一个文本。

HealthCheck.HttpHealthCheck

HealthCheck.HttpHealthCheck proto

  1. {
  2. "path": "...",
  3. "service_name": "..."
  4. }
  • path
    (string, REQUIRED) 指定运行健康检查期间,所请求的HTTP路径。例如/healthcheck

  • service_name
    (string) 可选,服务名称参数,用于验证运行状况检查的群集的身份。请参阅架构概述以获取更多信息。

HealthCheck.TcpHealthCheck

HealthCheck.TcpHealthCheck proto

  1. {
  2. "send": "{...}",
  3. "receive": []
  4. }
  • send
    (HealthCheck.Payload) 若有效载荷为空,意味着仅做连接的健康检查。

  • receive
    (HealthCheck.Payload) 当检查响应时,执行模糊匹配,每个二进制块必须被找到,并且按照指定的顺序,但不一定是连续的。

HealthCheck.RedisHealthCheck

HealthCheck.RedisHealthCheck proto

  1. {}

返回