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查询。
相关推荐
亚林瓜子1 天前
AWS API Gateway配置日志
云计算·gateway·aws·log·cloudwatch
惊鸿一博1 天前
java_网络服务相关_gateway_nacos_feign区别联系
java·开发语言·gateway
hanniuniu132 天前
网络安全厂商F5推出AI Gateway,化解大模型应用风险
人工智能·web安全·gateway
stormsha2 天前
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
服务器·网络·网络安全·gateway
背太阳的牧羊人2 天前
backend 服务尝试连接 qdrant 容器,但失败了,返回 502 Bad Gateway 问题排查
docker·gateway·qdrant
曼彻斯特的海边3 天前
RequestRateLimiterGatewayFilterFactory
spring cloud·gateway·限流
·云扬·3 天前
【PmHub面试篇】Gateway全局过滤器统计接口调用耗时面试要点解析
面试·职场和发展·gateway
devil_mf3 天前
gateway 网关 路由新增 (已亲测)
gateway
wmd131643067123 天前
Gateway 搭建
gateway
KubeSphere 云原生5 天前
云原生周刊:探索 Gateway API v1.3.0
云原生·gateway