微服务 - 负载均衡算法
负载均衡介绍
服务端负载均衡器
负载均衡器选型:Apache、Nginx、HAProxy等,均实现基于HTTP协议或TCP协议的负载均衡模块
负载均衡算法
静态算法:随机(Random)、轮询(Round Robin)
加权随机 ( Weight Random )算法
动态算法:最小连接数、最小时延、哈希
最小连接数(Least Connection)算法,根据集群中各个服务的当前打开连接数,来确定目标服务实例,连接数最少的服务实例优先响应请求。
服务调用时延(Service Invoke Delay) 算法根据服务实例的调用时延来决定负载均衡的结果。服务器根据服务调用和平均时延的差值动态调整权重。
源地址哈希(Source IP Hash)算法,具体实现时请求IP粘贴(Sticky) 连接,尽可能让同一IP地址访问到同一服务实例。
业界方案选型
Spring Cloud : 实现随机、轮询、加权响应时间、并发量最小优先等
Dubbo: 提供随机、轮询、最小活跃调用数和一致性哈希等算法