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

这篇具有很好参考价值的文章主要介绍了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查询。

 文章来源地址https://www.toymoban.com/news/detail-823473.html

到了这里,关于Kong工作原理 - 负载均衡 - 高级负载均衡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx、Kong、Apisix、Gateway网关比较

    Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。能够支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定,由C语言编写。支持负载均衡、限流熔断、热部署、安全认证等。 应用场景 http 服务器:独立提供 http 服务,用于

    2024年02月14日
    浏览(39)
  • 开源的API Gateway项目- Kong基于OpenResty(Nginx + Lua模块)

    Kong 是一个在 Nginx 内运行的开源 API 网关和微服务抽象层。它是用于处理 API 流量的灵活、可扩展、可插入的工具。 Kong 提供了以下功能: 用户登录 :Kong 提供了多种认证插件,像 JWT、OAuth 2.0 等,可以满足用户登录需求。 Token 管理 :使用上述认证插件,Kong 可以有效地管理

    2024年01月23日
    浏览(44)
  • Kong关键概念 - Upstreams

    Upstream是指Kong Gateway转发请求到的API、应用程序或微服务。在Kong Gateway中,Upstream 对象代表了一个虚拟主机名,并可以用于对多个服务进行健康检查、断路器和负载均衡。 Upstream 和 service 交互 您可以将服务配置为指向一个Upstream,而不是一个主机。例如,如果您有一个名为

    2024年01月24日
    浏览(36)
  • Kong网关概述

    介绍Kong网关 Kong Gateway是一个轻量级、快速且灵活的云原生API网关。API网关是一个反向代理,可以管理、配置和路由对API的请求。 Kong Gateway在任何RESTful API的前面运行,并且可以通过模块和插件进行扩展。它被设计用于在分散式架构中运行,包括混合云和多云部署。 通过Kon

    2024年01月23日
    浏览(44)
  • Kong网关初次尝试

    本次目的:研究市面上的API网关 Docker  部署 : 1. postgre 2. kong migrations bootstrap 3. kong 问题是migrations时会报lua的错误,后面调研一下。 1. 注册一个service,指定服务的ip 端口等信息。 2. 设定一个路由发现方式,支持path、method、host,这里先用最简单的path。创建了路由test指定了

    2024年01月25日
    浏览(40)
  • Docker安装Kong

    首先我们创建一个 Docker 自定义网络,以允许容器相互发现和通信。在下面的创建命令中 kong-net 是我们创建的 Docker 网络名称。 Kong 目前使用 Cassandra 或者 PostgreSQL,你可以执行以下命令中的一个来选择你的 Database。请注意定义网络 --network=kong-net 。 使用 PostgreSQL: 我们使用 d

    2024年02月06日
    浏览(30)
  • Kong 服务和路由的添加

    这里参考DB-less-Mode,因为使用的是 yaml 配置文件的形式,所以所有的相关配置只需要往初始化的 kong.yml 文件中添加就可以了,就像nginx的配置文件 DB-less-Mode vim /etc/kong/kong.yml Response: 我们可以在kong的 8000 端口后加上路由后缀 /test-service 查看服务是否正常 这里由于项目路径原因

    2024年02月16日
    浏览(40)
  • 【云原生网关】Kong 使用详解

    目录 一、前言 二、Kong介绍 三、Kong核心组件 3.1 kong组件介绍 3.1.1 Kong Server

    2024年02月02日
    浏览(43)
  • Kong关键概念 - 路由(Routes)

    路由(Routes) 路由决定在请求到达Kong Gateway之后如何(以及是否)将其发送到其服务。服务代表后端API,而路由定义了对客户端暴露的内容。 一个单独的服务可以有多个路由。一旦匹配到路由,Kong Gateway会将请求代理到其关联的服务。 路由与服务的交互 路由与服务结合使用

    2024年01月23日
    浏览(38)
  • Kong关键概念 - 服务(Services)

    服务(Services) 在Kong Gateway中,服务是代表外部上游(upstream)API或微服务的实体。例如,数据转换微服务、计费API等。 服务的主要属性是其URL。您可以使用一个字符串来指定URL,或者通过分别指定其协议、主机、端口和路径来指定URL。 服务与路由的交互 服务与路由结合使

    2024年01月23日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包