MST

星途 面试题库

面试题:分布式系统中常见的负载均衡算法有哪些及原理

请阐述如轮询、加权轮询、随机、加权随机等常见负载均衡算法的工作原理,并说明它们各自适用在哪些场景。
17.3万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

轮询(Round Robin)

  1. 工作原理:按顺序依次将请求分配到后端服务器集群中的每台服务器上,从第一台服务器开始,处理完一个请求后,下一个请求分配到下一台服务器,当到达最后一台服务器后,再回到第一台服务器继续循环。例如有服务器A、B、C,请求依次分配为A、B、C、A、B、C……
  2. 适用场景:适用于后端服务器硬件配置性能相近,且对请求处理能力较为均衡的场景,比如一组配置相同的Web服务器提供静态网页服务。

加权轮询(Weighted Round Robin)

  1. 工作原理:为后端每台服务器分配一个权重值,权重值代表服务器的处理能力。调度器根据权重值按比例分配请求。例如服务器A权重为2,服务器B权重为1,那么在每3个请求中,有2个请求会分配到A,1个请求分配到B 。在循环分配时,会根据权重来决定某台服务器被分配请求的频率。
  2. 适用场景:适用于后端服务器硬件配置不同,处理能力有差异的场景。性能好的服务器可以设置较高权重,以承担更多请求,如一台高性能服务器和一台普通服务器组成的集群。

随机(Random)

  1. 工作原理:从后端服务器集群中随机选择一台服务器来处理请求。每次请求到来时,都有相同概率从所有可用服务器中随机挑选一台。
  2. 适用场景:适用于对请求分配随机性有要求,且后端服务器处理能力相对均衡的场景,比如一些对负载均衡精度要求不高,只是大致分散请求的简单服务。

加权随机(Weighted Random)

  1. 工作原理:为每台服务器设置一个权重值,请求到来时,按照权重比例随机选择服务器。权重高的服务器被选中的概率更大。例如服务器A权重为3,服务器B权重为1,那么每次随机选择时,A被选中的概率是3/4,B被选中的概率是1/4 。
  2. 适用场景:和加权轮询类似,适用于后端服务器处理能力有差异的场景,同时又希望分配过程带有一定随机性,以避免某些固定顺序分配带来的潜在问题,如服务器负载突然变化时,加权随机能更灵活地适应。