skipper 对于后端是支持负载均衡处理的,支持官方文档并没有提供,实际使用中,这个还是比较重要的
同时支持健康检查。
格式
hello_lb_group: Path("/foo") && LBGroup("hello")
-> lbDecide("hello", 3)
-> <loopback>;
hello_1: Path("/foo") && LBMember("hello",0)
-> "http://127.0.0.1:12345";
hello_2: Path("/foo") && LBMember("hello",1)
-> "http://127.0.0.1:12346";
hello_3: Path("/foo") && LBMember("hello",2)
-> "http://127.0.0.1:12347";
参数说明
lbDecide 第二个参数说明负载均衡组的格式
LBMember 第二个参数数说明,对应的索引
使用
- 测试项目代码
项目使用docker-compose运行,参考https://github.com/rongfengliang/skipper-prometheus-docker-compose - eskip 文件
ip_lb_group: Path("/ip") && LBGroup("ip")
-> lbDecide("ip", 2)
-> <loopback>;
ip_1: Path("/ip") && LBMember("ip",0)
-> "http://web";
ip_2: Path("/ip") && LBMember("ip",1)
-> "http://web2";
- 测试效果
停止一个web服务,只有web有请求web2已经剔除了
参考资料
https://github.com/rongfengliang/skipper-prometheus-docker-compose
https://github.com/zalando/skipper/blob/master/loadbalancer/doc.go#L11