面试题答案
一键面试常见负载均衡策略
- 轮询(Round Robin)
- 原理:按顺序依次将请求分配到各个微服务节点。例如有节点A、B、C,请求1分配到A,请求2分配到B,请求3分配到C,请求4又分配到A,如此循环。
- 特点:实现简单,能平均分配请求,不考虑节点性能差异。适用于各节点处理能力相近的场景。
- 加权轮询(Weighted Round Robin)
- 原理:为每个微服务节点分配一个权重,根据权重比例分配请求。比如节点A权重2,节点B权重1,那么每3个请求中,2个会分配到A,1个会分配到B。
- 特点:考虑了节点性能差异,性能好的节点权重高,能处理更多请求。适用于节点处理能力不同的场景。
- 随机(Random)
- 原理:随机选择一个微服务节点来处理请求。
- 特点:实现简单,一定程度上能分散请求,但可能出现某些节点请求过多或过少的情况。
- 加权随机(Weighted Random)
- 原理:结合随机和加权的思想,按照节点权重随机选择节点。权重高的节点被选中的概率更大。
- 特点:既利用随机分散请求,又兼顾节点性能差异。
- 最少连接(Least Connections)
- 原理:优先将请求分配给当前连接数最少的微服务节点。
- 特点:动态根据节点负载分配请求,适合处理长连接业务,能保证各节点负载相对均衡。
- IP 哈希(IP Hash)
- 原理:根据请求源IP的哈希值将请求分配到固定的微服务节点。相同IP的请求始终被路由到同一个节点。
- 特点:适合有状态业务,如用户会话管理,能保证同一个用户的请求始终由同一节点处理。
根据业务场景选择策略
- 各节点性能相近的无状态业务
- 选择:轮询策略。因为节点性能相近,轮询可简单高效地平均分配请求,实现负载均衡。
- 节点性能差异较大的无状态业务
- 选择:加权轮询或加权随机策略。能根据节点性能分配请求,使性能好的节点处理更多请求,充分利用资源。
- 长连接业务
- 选择:最少连接策略。动态关注节点连接数,将新请求分配给负载轻的节点,保证各节点负载均衡。
- 有状态业务(如用户会话管理)
- 选择:IP哈希策略。可确保同一个用户的请求始终由同一节点处理,维持业务状态的一致性。