nginx下负载均衡配置
upstream tulingmall-product-upstream {
server 192.168.65.190:8866 weight=100;
server 192.168.65.190:8867 weight=100;
}
server {
listen 80;
location /pms/ {
proxy_pass http://tulingmall-product-upstream;
}
}
通过 Kong Admin API 进行上述的负载均衡的配置
https://docs.konghq.com/enterprise/2.4.x/admin-api/
Kong 组件 | 说明 |
service | service 对应服务,可以直接指向一个 API 服务节点( host 参数设置为 ip + port), 也可以指定一个 upstream 实现负载均衡。简单来说,服务用于映射被转发的后端 API 的节点集合 |
route | route 对应路由,它负责匹配实际的请求,映射到 service 中 |
upstream | upstream 对应一组 API 节点,实现负载均衡 |
target | target 对应一个 API 节点 |
创建 upstream 和 target
调用 Kong Admin API /upstreams ,创建名字为 demo-upstream 的 upstream
curl -X POST http://127.0.0.1:8001/upstreams --data "name=handsome-productupstream"
调用 Kong Admin API /upstreams/{upstream}/targets ,创建 tulingmall-product服务对应的 2 个target。注意, {upstream} 路径参数为 upstream 的名字。
# 192.168.65.190:8866 对应的 target
curl -X POST http://127.0.0.1:8001/upstreams/handsome-productupstream/targets --data "target=192.168.65.190:8866" --data "weight=100"
# 192.168.65.190:8867 对应的 target
curl -X POST http://127.0.0.1:8001/upstreams/handsome-productupstream/targets --data "target=192.168.65.190:8867" --data "weight=100"
创建 service 和 route
调用 Kong Admin API /services ,创建名字为 tulingmall-product 的 service。host 参数,用于设置对应的 upstream 的名字。
curl -X POST http://127.0.0.1:8001/services --data "name=handsome-product" --data "host=handsome-product-upstream" --data "path=/pms"
调用 Kong Admin API services/${service}/routes ,创建一个请求路径为 path 的 route。注意, {service} 路径参数,为 service的名字。
curl -X POST http://127.0.0.1:8001/services/handsome-product/routes --data "name=handsome-product-route" --data "paths[]=/pms"
测试
curl http://127.0.0.1:8000/pms/productInfo/42
或者直接用浏览器访问该端口