面试题答案
一键面试- 轮询(Round Robin):
- 策略描述:按照顺序依次将请求分配到每个服务实例。例如有三个服务实例A、B、C,请求依次分配为A、B、C、A、B、C……
- 适用场景:适用于各个服务实例性能相近,对请求处理能力较为均衡的场景。如一些简单的无状态API服务,每个实例都能以相似的效率处理请求,轮询可均匀分配负载,充分利用各个实例资源。
- 随机(Random):
- 策略描述:每次请求随机选择一个服务实例。
- 适用场景:当服务实例之间性能差异不大,且希望以一种相对随机的方式分配请求,避免某些固定顺序带来的潜在问题时适用。例如在开发测试环境,对负载均衡的精确性要求不高,使用随机策略可以简单实现负载分配。
- 加权轮询(Weighted Round Robin):
- 策略描述:根据服务实例的性能情况,为每个实例分配一个权重,按照权重比例依次分配请求。例如实例A权重为2,实例B权重为1,那么请求分配顺序可能为A、A、B、A、A、B……
- 适用场景:适用于服务实例性能有差异的场景。性能好的实例权重高,能分配到更多请求,充分发挥其处理能力;性能差的实例权重低,减少请求分配,避免过载。如部分服务器配置高,部分配置低的集群环境。
- 加权随机(Weighted Random):
- 策略描述:依据服务实例的权重,随机选择实例,权重越高被选中的概率越大。
- 适用场景:同样适用于实例性能有差异的情况,与加权轮询相比,它的随机性可以在一定程度上避免加权轮询按顺序分配可能出现的局部不均衡问题。例如,在一些对请求分配的随机性和权重分配都有需求的场景中比较适用。
- 最少并发请求(Best Available):
- 策略描述:选择当前并发请求数最少的服务实例。
- 适用场景:适用于对每个实例的并发处理能力有要求,希望优先将请求分配到负载较轻实例的场景。比如某些对响应时间敏感,处理请求时间较长的服务,优先选择并发请求少的实例,能减少请求等待时间,提高整体响应速度。
- 响应时间加权(Response Time Weighted):
- 策略描述:根据服务实例的平均响应时间来分配权重,响应时间越短权重越高,被选中的概率越大。
- 适用场景:适用于对响应时间非常关注的业务场景。优先将请求发送到响应速度快的实例,能提升整体用户体验,例如面向用户的前端应用服务,快速响应能提高用户满意度。