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使用的状态码。即使目标继续提供看似健康的流量,被动健康检查器也无法对主动探测作出失败的响应状态,从而请求停止接受新的流量。

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

相关推荐
骚戴1 天前
LLM API Gateway:LLM API 架构、AI 聚合与成本优化全解(2025深度指南)
人工智能·python·大模型·llm·gateway·api
serendipity_hky4 天前
【SpringCloud | 第4篇】Gateway网关统一入口
spring·spring cloud·微服务·gateway
小毅&Nora5 天前
【后端】【诡秘架构】 序列7:魔术师 - API网关与协议转换的艺术:用Kong编织系统的幻象
架构·kong
库库林_沙琪马5 天前
4、Gateway
gateway
全靠bug跑5 天前
Spring Cloud Gateway 实战:统一鉴权与用户信息全链路透传
java·开发语言·gateway·拦截器
骚戴6 天前
架构设计之道:构建高可用的大语言模型(LLM) Enterprise GenAI Gateway
java·人工智能·架构·大模型·gateway·api
Maiko Star8 天前
Gateway网关拦截自定义header & 用户上下文打通实战
gateway·threadlocal
skywalk816311 天前
LLM API Gateway:使用Comate Spec Mode创建大模型调用中转服务器
服务器·人工智能·gateway·comate
2401_8604947011 天前
如何在React Native中,开发一个类似于鸿蒙组件(Hong Kong component)的NoticeBar(通知栏)组件呢?
javascript·react native·react.js·ecmascript·kong·harmonyos