如何设计和实现自适应的负载均衡
本文是第五届中间件性能挑战赛的赛题解析,参与比赛,赢取最高10万元奖金。
在现代分布式应用中,服务请求是由物理机或虚拟机组成的 server 池进行处理的。 通常,server 池规模巨大且服务容量各不相同,受网络、内存、CPU、下游服务等各种因素影响,一个 server 的服务容量始终处于动态变动和趋于稳定的状态,如何设计和实现这种系统的负载均衡算法是一个极具挑战的难题。
阿里巴巴中间件公众号对话框发送“挑战赛”,获取上一届优秀选手的解题思路,点击这里。
自适应负载均衡的需求背景
负载均衡有两个主要目标:
- 保持较短的请求响应时间和较小的请求阻塞概率;
- 负载均衡算法的 overhead 在可控级别,不占用过多的 CPU 、网络等资源。
自适应负载均衡是指无论系统处于空闲、稳定还是繁忙状态,负载均衡算法都会自动评估系统的服务能力,进行合理的流量分