在本主题中,您将学习配置上游服务,并创建多个目标来进行负载平衡。
如果根据入门指南学习,请确保已完成"Kong入门指南 - 使用身份验证的安全服务" 。
什么是上游?
上游指的是你的上游API/服务,是客户端到网关请求转发的目标服务。在Kong Gateway中,一个上游对象代表一个虚拟主机名,可用于运行状况检查,断路和负载平衡多个服务(目标)上的传入请求。
在本主题中,您将配置先前创建的服务(example_service)指向上游而不是主机。在我们的例子而言,上游将指向两个不同的目标,httpbin.org和mockbin.org。在实际环境中,上游将指向在多个系统上运行的同一服务。
这是说明设置的图:
为什么要在上游目标之间实现负载平衡?
在以下示例中,您将使用跨两个不同服务器或上游目标部署的应用程序。Kong Gateway需要在两台服务器之间实现负载平衡,以便如果其中一台服务器不可用,它将自动检测到问题并将所有流量路由到工作服务器。
配置上游服务
在本部分中,您将创建一个名为的上游upstream,并向其添加两个目标。
- 在端口上调用Admin API 8001并创建名为的上游upstream。
使用cURL:
$ curl -X POST http://<admin-hostname>:8001/upstreams \
--data name=upstream
- 更新您先前创建的服务以指向该上游。
使用cURL:
$ curl -X PATCH http://<admin-hostname>:8001/services/example_service \
--data host='upstream'
- 向上游添加两个目标,每个目标都有端口80:mockbin.org:80和httpbin.org:80。
使用cURL:
$ curl -X POST http://<admin-hostname>:8001/upstreams/upstream/targets \
--data target=’mockbin.org:80’
$ curl -X POST http://<admin-hostname>:8001/upstreams/upstream/targets \
--data target=’httpbin.org:80’
现在,您有一个具有两个目标的上游httpbin.org和mockbin.org,以及一个指向该上游的服务。
验证上游服务
- 配置上游后,通过http://
:8000/mock使用Web浏览器或CLI 访问路由来验证其是否正常工作。 - 继续访问端点,站点应从更改httpbin为mockbin。