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查询。
相关推荐
青衫客3620 小时前
Portkey-AI gateway 的一次“假压缩头”翻车的完整排障记:由 httpx 解压异常引发的根因分析
大模型·llm·gateway·httpx
tnan25224 天前
记录docker使用kong consul postgresql配置dns异常解决
docker·kong·consul
PXM的算法星球5 天前
spring gateway配合nacos实现负载均衡
spring·gateway·负载均衡
1990_super6 天前
使用ceph-deploy安装和配置RADOS Gateway (RGW)并使用S3访问集群
ceph·gateway
北极糊的狐9 天前
接口返回504 Gateway Time-out 错误,这意味着请求在网关或代理服务器等待上游服务器响应时超时。以下是可能的原因和排查建议:
数据库·gateway
sg_knight10 天前
Spring Cloud Gateway全栈实践:动态路由能力与WebFlux深度整合
java·spring boot·网关·spring·spring cloud·微服务·gateway
放纵日放纵12 天前
微服务—Gateway
微服务·架构·gateway
你我约定有三12 天前
分布式微服务--GateWay(1)
java·开发语言·分布式·微服务·架构·gateway
William一直在路上16 天前
KONG API Gateway中的核心概念
网络·gateway·kong