1. 负载均衡策略
- 无状态
- 半状态
- 全状态
2. 关键点:
- 公平性
- 正确性 (请求调度到能正确处理它的后端实例上)
3. 负载均衡策略:
3.1 无状态
- 轮训 (请求的工作负载和实例的处理能力差异都较小的情况)
- 权重轮询 (解决实例的处理能力差异的问题)
- FAIR 、随机、权重随机和最少链接数 (可以看gateway / ribbon)\
3.2 半状态 (正确性由后端实例来保证 将请求按一定的策略进行路由,后端实例可以利用路由规则来进行优化)
3.2.1 hash
- 正确性: 当实例数发生变化的时候,正确性将会出现问题
- 公平性: 公平
3.2.2 一致性 Hash
- 一个圆,但是可能把压力给到某一个节点,怎么办? 添加虚拟节点
3.3 全状态(正确性由路由服务 来保证 ) 应用场景:
- 全状态 Kafka的Controller模型 数据分片 / 正常分布式系统 leader/follower 的选举其实也算 全状态