Kong工作原理 - 负载均衡 - 高级负载均衡

通过upstream实体可用高级负载均衡算法。

使用这些负载均衡器时,后端服务的添加和删除将由Kong处理,不需要进行DNS更新。Kong将充当服务注册表的角色。

通过上游和目标实体进行负载均衡器的配置。

  • upstream:一个"虚拟主机名",可以在服务主机字段中使用,例如,一个名为weather.v2.service的upstream将接收来自host=weather.v2.service的所有请求。upstream包含确定负载均衡行为(以及健康检查和熔断器配置)的属性。
  • target:一个IP地址或带有端口号的主机名,用于指示后端服务所在的位置,例如"192.168.100.12:80"。每个target都有一个额外的权重,用于表示相对负载。IP地址可以是IPv4和IPv6格式。
Upstream

每个upstream可以有许多与之关联的target条目,对"虚拟主机名"进行代理的请求将在target之间进行负载均衡。

通过对Admin API进行简单的HTTP请求,可以添加和删除target。此操作相对廉价。但如果更改upstream本身(例如,插槽数量发生变化),则成本会更高,因为需要重新构建负载均衡器。

Target

一个Target(目标) 是一个具有端口的IP地址/主机名,用于标识后端服务的实例。每个upstream 可以有多个target 。

当有10倍于活动条目数量的非活动条目时,target 将被自动清理。清理将涉及重建负载均衡器,因此比仅添加目标条目更耗费资源。

Target还可以使用主机名而不是IP地址。在这种情况下,将解析该名称,并将找到的所有条目分别添加到环形负载均衡器中。例如,添加具有权重为100的api.host.com:123。名称"api.host.com"解析为具有2个IP地址的A记录。然后,这两个IP地址将被添加为target ,每个target 的权重都为100,端口为123。注意:权重是用于单个条目而不是整体!

如果解析到SRV记录,那么DNS记录中的端口和权重字段将被使用,将覆盖提供的端口123和权重100。

注意:与基于DNS的负载均衡类似,只有SRV记录中最高优先级的条目(最低值)将被使用。

负载均衡器将遵循DNS记录的TTL设置,在过期后会查询域名服务器并更新负载均衡器。

例外情况:当DNS记录的TTL为0时,主机名将被添加为单个目标,具有指定的权重。对于每个代理请求到该目标,它将再次查询域名服务器。

抗击负载均衡器

如在目标段落中描述的那样,目标可以指定为主机名。在像k8s或docker-compose这样的编排环境中,IP地址和端口大多是临时的,必须使用SRV记录来找到适当的后端,并保持更新。

在DNS级别上,许多基础设施工具也可以提供类似负载均衡的功能。这些工具大多是服务发现工具,它们具有自己的健康检查并对DNS记录进行随机化或仅返回一小部分可用的对等节点。

Kong负载均衡器和基于DNS的工具经常相互竞争。域名服务器将尽可能少地提供信息,以迫使客户端遵循其方案,而Kong则尽力确保所有后端正确设置其负载均衡器和健康检查。

在您的环境中,请确保:

  • 当域名服务器无法将所有记录放入UDP响应中时,设置截断标志。这将强制Kong使用TCP进行重试。
  • 允许在域名服务器上进行TCP查询。
相关推荐
WwW.-.4 小时前
OpenClaw 技术解析:多渠道 AI Gateway 如何连接消息、Agent 与远程节点
网络·人工智能·gateway
@小匠6 小时前
Spring-Gateway-理论知识总结/常问面试题
数据库·spring·gateway
胡斌附体7 小时前
OpenClaw Gateway 代理问题排查记录
gateway·proxy·openclaw
大傻^15 小时前
【OpenClaw -04】OpenClaw Gateway 架构:单一控制平面与 Agent 运行时模型
gateway·mcp·openclaw
坐吃山猪14 天前
OpenClaw04_Gateway常见问题
网络·gateway·openclaw
三水不滴14 天前
利用SpringCloud Gateway 重试 + 降级解决第三方接口频繁超时问题,提升性能
经验分享·笔记·后端·spring·spring cloud·gateway
知识即是力量ol15 天前
微服务架构:从入门到进阶完全指南
java·spring cloud·微服务·nacos·架构·gateway·feign
j2001032215 天前
Gateway—— 高级流量路由
gateway·k8s
笨蛋不要掉眼泪15 天前
Spring Cloud Gateway 核心篇:深入解析过滤器(Filter)机制与实战
java·服务器·网络·后端·微服务·gateway
笨蛋不要掉眼泪15 天前
Spring Cloud Gateway 扩展:全局跨域配置
java·分布式·微服务·架构·gateway