面试题答案
一键面试1. 轮询(Round Robin)算法
- 工作原理:按顺序依次将请求分配到各个服务器节点,从列表头部开始,依次将请求分配给每个服务器,当到达列表末尾时,再回到开头重新分配。
- 适用场景:适用于服务器处理能力相近,且请求相对均衡的场景。例如,后端多个Web服务器处理能力大致相同,对简单的静态网页请求进行负载均衡。
2. 加权轮询(Weighted Round Robin)算法
- 工作原理:为每个服务器分配一个权重值,权重越高的服务器被分配到请求的概率越大。在轮询的基础上,按照权重比例分配请求。比如,服务器A权重为2,服务器B权重为1,那么每3个请求中,服务器A会分配到2个,服务器B会分配到1个。
- 适用场景:适用于服务器处理能力不同的场景。比如,后端服务器配置不同,配置高的服务器权重可以设置得高一些,能处理更多请求。
3. 随机(Random)算法
- 工作原理:随机从服务器列表中选择一个服务器来处理请求。每次选择时,每个服务器都有相同的概率被选中。
- 适用场景:简单且服务器处理能力差异不大的场景,能在一定程度上实现负载均衡。但可能会出现某些服务器被频繁选中,某些服务器很少被选中的情况。
4. 加权随机(Weighted Random)算法
- 工作原理:与加权轮询类似,为每个服务器分配权重,根据权重的大小,按概率随机选择服务器。权重越大,被随机选中的概率越高。
- 适用场景:同样适用于服务器处理能力不同的场景,相较于加权轮询,它的随机性可能使请求分配更加灵活。
5. 最少连接(Least Connections)算法
- 工作原理:优先将请求分配给当前连接数最少的服务器。负载均衡器实时监控每个服务器的连接数,当有新请求到来时,将请求分配给连接数最少的服务器节点,这样能保证每个服务器的负载相对均衡。
- 适用场景:适用于长连接服务,如数据库连接池、流媒体服务等场景,可避免某个服务器连接数过多而负载过重。
6. 源地址哈希(Source IP Hashing)算法
- 工作原理:根据请求源IP地址,通过哈希函数计算出一个哈希值,再将该哈希值映射到服务器列表中的某一个服务器上。这样,来自同一IP地址的请求总是会被分配到同一台服务器上。
- 适用场景:适用于需要会话保持的场景,例如用户登录后,后续的请求需要始终由同一台服务器处理,以保证用户会话的一致性。