Kong工作原理 - 健康检查和断路器 - 健康检查的类型

主动健康检查

主动健康检查(Active Health Checks)顾名思义,是通过主动探测目标的健康状况来进行检查。当在上游实体中启用主动健康检查时,Kong会定期向上游的每个目标发送HTTP或HTTPS请求,以访问配置的路径。这使得Kong能够根据探测结果自动在负载均衡器中启用或禁用目标。

主动健康检查的周期性可以分别针对目标的健康和不健康状态进行配置。如果任一状态的间隔值设置为零,则对应场景的检查被禁用。当两者都设置为零时,主动健康检查将完全被禁用。

注意:主动健康检查仅适用于HTTP/HTTPS目标。它们不适用于协议属性设置为TCP或TLS的服务分配的上游。

被动健康检查(断路器)

注意:这个功能在混合模式下不被支持。

被动健康检查,也被称为断路器,是基于Kong代理的请求进行的检查(HTTP/HTTPS/TCP),而不会生成额外的流量。当目标无响应时,被动健康检查器将检测到并将目标标记为不健康状态。环形负载均衡器将开始跳过该目标,因此不会再将流量路由到该目标。

一旦解决了目标的问题,并且可以再次接收流量时,Kong管理员可以通过Admin API端点手动通知健康检查器应该重新启用目标。

Lua 复制代码
 curl -i -X POST http://localhost:8001/upstreams/my_upstream/targets/10.1.2.3:1234/healthy

响应:

Lua 复制代码
HTTP/1.1 204 No Content

该命令将广播一个集群范围的消息,以便"健康"状态在整个Kong集群中传播。这将导致Kong节点重置运行在所有工作进程中的健康检查器的健康计数器,从而使环形负载均衡器能够再次将流量路由到目标。

被动健康检查的优点是不会产生额外的流量,但它们无法自动将目标重新标记为健康状态:断路器已打开,需要由系统管理员重新启用目标。

优点和缺点摘要

  • 主动健康检查能够在目标恢复健康时自动重新启用环形负载均衡器中的目标,而被动健康检查则不能。
  • 被动健康检查不会给目标产生额外流量,而主动健康检查会。
  • 主动健康检查需要在目标中配置一个已知URL,并要求能够可靠响应状态的端点(可以简单地为"/")。被动健康检查不需要进行此类配置。
  • 通过为主动健康检查器提供自定义的探测端点,应用程序可以确定自己的健康指标,并产生将由Kong使用的状态码。即使目标继续提供看似健康的流量,被动健康检查器也无法对主动探测作出失败的响应状态,从而请求停止接受新的流量。

可以将两种模式结合起来。例如,可以启用被动健康检查仅基于流量来监控目标的健康状况,并且只在目标处于不健康状态时使用主动健康检查,以便自动重新启用它。

相关推荐
angushine1 天前
Gateway获取下游最终响应码
java·开发语言·gateway
鬼布2 天前
post请求在gateway打印日志内存遗漏
java·gateway
TE-茶叶蛋2 天前
2025-Gateway架构
架构·gateway
小样vvv2 天前
【微服务管理】深入理解 Gateway 网关:原理与实现
微服务·gateway
sky.fly3 天前
在思科模拟器show IP route 发现Gateway of last resort is not set没有设置最后的通道
网络协议·tcp/ip·gateway
angushine4 天前
Gateway统一修改响应内容
gateway
曾经的三心草4 天前
Gateway-网关-分布式服务部署
gateway·分布式服务部署
云攀登者-望正茂6 天前
通过AWS WAF Rate limit rule来保护API Gateway
网络·gateway·aws
小怪瘦798 天前
IDEA :物联网ThingsBoard-gateway配置,运行Python版本,连接thingsboard,接入 MQTT 设备
python·物联网·gateway·idea
字节源流10 天前
【Spring Cloud Netflix】GateWay服务网关
java·运维·gateway