apisix负载均衡测试
#作者:stackofumbrella
文章目录
- 说明
- 启用负载均衡
说明
负载均衡管理客户端和服务端之间的流量。它决定由哪个服务来处理特定的请求,从而提高性能、可扩展性和可靠性。在设计需要处理大量流量的系统时,负载均衡是一个关键的考虑因素。
Apache APISIX 支持加权负载均衡算法,传入的流量按照预定顺序轮流分配给一组服务器的其中一个。
启用负载均衡
创建一个具有两个上游服务的路由,访问/headers将被转发到httpbin.org和mock.api7.ai这两个上游服务,并且会返回请求头。
$ curl -i "http://10.244.122.79:9180/apisix/admin/routes" -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{"id": "getting-started-headers","uri": "/headers","upstream" : {"type": "roundrobin","nodes": {"httpbin.org:443": 1,"mock.api7.ai:443": 1},"pass_host": "node","scheme": "https"}
}'
如果路由创建成功将会收到返回
验证两个服务返回不同的数据
httpbin.org返回
$ curl -X GET "http://10.244.122.79:9080/headers"
mock.api7.ai返回
$ curl -X GET "http://10.244.122.79:9080/headers"
生成100个请求来测试负载均衡的效果
$ hc=$(seq 100 | xargs -I {} curl "http://10.244.122.79:9080/headers" -sL | grep "httpbin" | wc -l); echo httpbin.org: $hc, mock.api7.ai: $((100 - $hc))
结果显示请求几乎平均分配给这两个上游服务
httpbin.org: 53, mock.api7.ai: 47