中间件 | 负载均衡策略
1. 随机
通过随机数,随机选择一台服务器
2. 轮询
按顺序依次选择一台服务器
3. 权重轮询
给目标服务器添加权重,在依照权重选择服务器
4. HASH
按请求对象的某个数据的hash,挑选一台服务器,使用使用请求对象的IP、url等,使每次请求都访问同一台服务器。
4.1. hash负载均衡原理
hash计算服务器地址得到一个一定范围的数字,每次收到请求也计算出相同范围的数字,将他们落入一个圆中,然后每次顺时针寻找最近的上游服务器,处理请求。
4.2. hash平衡问题
注意看下图,当前两台上游服务器选择几率是不一样的,选择Server A的几率明显大于Server B,这样的话负载均衡的压力可能就会集中到Server A中。
4.3. 解决方法
因为Server A和Server B hash出来的数字,有可能会造成下游分配不均衡,所以我们可用通过随机数或其他辅助手段为Server A计算出多个复制因子(图片中灰色部份),让Server A和Server B尽可能的平均的落在圆上。
5. 最少连接
选择连接最少的一台服务器
6. 最小迟延
选择处理请求最快的服务器