Kong 负载均衡

负载均衡是一种将API请求流量分发到多个上游服务的方法。负载均衡可以提高整个系统的响应速度,通过防止单个资源过载而减少故障。

在以下示例中,您将使用部署在两台不同服务器或上游目标上的应用程序。Kong网关需要在这两台服务器之间进行负载均衡,以便如果其中一台服务器不可用,它会自动检测问题并将所有流量路由到正常工作的服务器。

上游指的是位于Kong网关后面的服务应用程序,客户端请求将被转发到这些应用程序。在Kong网关中,一个上游表示一个虚拟主机名,并可以用于对传入请求进行健康检查、断路和负载均衡,将其分发到多个目标后端服务。

在本节中,您将重新配置之前创建的服务(example_service),将其指向一个上游而不是特定的主机。在我们的示例中,上游将指向httpbin.org和httpbun.com这两个不同的目标。通常情况下,目标会是在不同主机系统上运行的相同后端服务的实例。

这是一个说明设置的图示:

开启负载均衡 

 在本节中,您将创建一个名为example_upstream的上游,并向其添加两个目标。

先决条件

本章节是“开始使用Kong”的系列的一部分。为了获得最佳体验,建议您从头开始按照系列进行操作。

从介绍“获取Kong”开始,其中包含运行本地Kong网关所需的先决条件和说明。

该指南的第二步“服务和路由”包括安装本系列中使用的模拟服务的说明。

如果您还没有完成这些步骤,请在继续之前完成它们。

启用负载均衡的步骤

1. 创建上游(upstream) 

使用管理API创建一个名为example_upstream的上游:

curl -X POST http://localhost:8001/upstreams \
 --data name=example_upstream

 2. 创建上游目标

为example_upstream创建两个目标。每个请求都会创建一个新的目标,并设置后端服务的连接端点:

curl -X POST http://localhost:8001/upstreams/example_upstream/targets \
 --data target='httpbun.com:80'
curl -X POST http://localhost:8001/upstreams/example_upstream/targets \
 --data target='httpbin.org:80'

 3. 更新服务

在本指南的“服务和路由”部分,您创建了一个名为example_service的服务,该服务指向一个具体的主机,即http://httpbun.com。现在您将修改该服务,使其指向上游而不是具体的主机:

curl -X PATCH http://localhost:8001/services/example_service \
 --data host='example_upstream'

 您现在有一个包含两个目标httpbin.org和httpbun.com的上游,以及一个指向该上游的服务。

4. 验证

通过使用Web浏览器或CLI访问路由http://localhost:8000/mock来验证您配置的上游是否正常工作。

  • Web浏览器:访问http://localhost:8000/mock并多次刷新页面,观察站点从httpbin更改为httpbun。
  • CLI命令:执行curl -s http://localhost:8000/mock/headers | grep -i -A1 '"host"'命令多次。您会看到主机名在httpbin和httpbun之间进行变化。

 

 

相关推荐

  1. Kong工作原理 - 负载均衡 - 负载均衡算法

    2024-02-06 07:46:02       63 阅读
  2. Kong工作原理 - 负载均衡 - 高级负载均衡

    2024-02-06 07:46:02       57 阅读
  3. Kong工作原理 - 负载均衡 - 基于DNS的负载均衡

    2024-02-06 07:46:02       54 阅读
  4. 负载均衡

    2024-02-06 07:46:02       29 阅读
  5. Nginx实现(负载均衡

    2024-02-06 07:46:02       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-06 07:46:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-06 07:46:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-06 07:46:02       87 阅读
  4. Python语言-面向对象

    2024-02-06 07:46:02       96 阅读

热门阅读

  1. zk集群--集群同步

    2024-02-06 07:46:02       41 阅读
  2. 设计模式(创建型模式)原型模式

    2024-02-06 07:46:02       45 阅读
  3. 系统架构设计师-22年-上午答案

    2024-02-06 07:46:02       38 阅读
  4. spring-boot-actuator 服务监控

    2024-02-06 07:46:02       44 阅读
  5. 汽车信息安全--SHE中的密钥管理(一)

    2024-02-06 07:46:02       53 阅读
  6. 汽车信息安全--SHE中的密钥管理(二)

    2024-02-06 07:46:02       47 阅读