KONG API 网关中的负载平衡

Mut*_*thu 3 load-balancing kong

我们在 Kong API 网关后面有多个微服务实例,我们希望在其中平衡用户请求的负载。

假设微服务 1 在多个实例中相乘,这些实例保留在 KONG API 网关后面;在这种情况下,来自用户 1 的请求应命中第一个实例,而来自用户 2 的请求应根据其可用性(负载平衡)命中相同服务的其他实例。(即)我是否可以为 kong 中的单个 API 拥有多个上游 URL。我们不想使用 nginx 进行负载平衡。请建议我们如何解决它。

小智 5

如果您不需要基于 DNS 的负载平衡,则可以在 Kong 中使用环平衡器策略。详情请参阅Kong负载均衡参考!

# create an upstream
$ curl -X POST http://kong:8001/upstreams \
    --data "name=address.v1.service"

# add two targets to the upstream
$ curl -X POST http://kong:8001/upstreams/address.v1.service/targets \
    --data "target=192.168.34.15:80"
    --data "weight=100"
$ curl -X POST http://kong:8001/upstreams/address.v1.service/targets \
    --data "target=192.168.34.16:80"
    --data "weight=50"

# create an API targeting the Blue upstream
$ curl -X POST http://kong:8001/apis/ \
    --data "name=address-service" \
    --data "hosts=address.mydomain.com" \
    --data "upstream_url=http://address.v1.service/address"
Run Code Online (Sandbox Code Playgroud)

主机标头设置为 address.mydomain.com 的请求现在将由 Kong 代理到两个定义的目标;2/3 的请求将前往http://192.168.34.15:80/address (weight=100),1/3 将前往http://192.168.34.16:80/address (weight=50)。