面试题答案
一键面试轮询(Round Robin)
- 工作原理:按顺序依次将请求分配到后端服务器集群中的每台服务器上,从第一台服务器开始,处理完一个请求后,下一个请求分配到下一台服务器,当到达最后一台服务器后,再回到第一台服务器继续循环。例如有服务器A、B、C,请求依次分配为A、B、C、A、B、C……
- 适用场景:适用于后端服务器硬件配置性能相近,且对请求处理能力较为均衡的场景,比如一组配置相同的Web服务器提供静态网页服务。
加权轮询(Weighted Round Robin)
- 工作原理:为后端每台服务器分配一个权重值,权重值代表服务器的处理能力。调度器根据权重值按比例分配请求。例如服务器A权重为2,服务器B权重为1,那么在每3个请求中,有2个请求会分配到A,1个请求分配到B 。在循环分配时,会根据权重来决定某台服务器被分配请求的频率。
- 适用场景:适用于后端服务器硬件配置不同,处理能力有差异的场景。性能好的服务器可以设置较高权重,以承担更多请求,如一台高性能服务器和一台普通服务器组成的集群。
随机(Random)
- 工作原理:从后端服务器集群中随机选择一台服务器来处理请求。每次请求到来时,都有相同概率从所有可用服务器中随机挑选一台。
- 适用场景:适用于对请求分配随机性有要求,且后端服务器处理能力相对均衡的场景,比如一些对负载均衡精度要求不高,只是大致分散请求的简单服务。
加权随机(Weighted Random)
- 工作原理:为每台服务器设置一个权重值,请求到来时,按照权重比例随机选择服务器。权重高的服务器被选中的概率更大。例如服务器A权重为3,服务器B权重为1,那么每次随机选择时,A被选中的概率是3/4,B被选中的概率是1/4 。
- 适用场景:和加权轮询类似,适用于后端服务器处理能力有差异的场景,同时又希望分配过程带有一定随机性,以避免某些固定顺序分配带来的潜在问题,如服务器负载突然变化时,加权随机能更灵活地适应。