MST

星途 面试题库

面试题:微服务架构下Nginx负载均衡配置之常见算法

在微服务架构中使用Nginx进行负载均衡,常见的负载均衡算法有哪些?请简要描述每种算法的工作原理以及适用场景。
47.7万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试
  1. 轮询(Round Robin)
    • 工作原理:按顺序依次将请求分配到每个后端服务器。例如,有服务器A、B、C,第一个请求分配到A,第二个到B,第三个到C,第四个又回到A,以此类推。
    • 适用场景:适用于后端服务器硬件配置相近,性能差异不大的场景,能较为平均地分配请求。
  2. 加权轮询(Weighted Round Robin)
    • 工作原理:为每个后端服务器设置一个权重值,权重越高,被分配到请求的概率越大。权重值代表服务器的处理能力,例如服务器A权重为3,B权重为2,C权重为1,总共权重为6,那么在6次请求中,A可能会被分配到3次,B可能被分配到2次,C可能被分配到1次。
    • 适用场景:适用于后端服务器硬件配置不同,性能有差异的场景,可根据服务器性能合理分配请求。
  3. IP哈希(IP Hash)
    • 工作原理:根据客户端请求的IP地址,通过哈希算法计算出一个哈希值,再根据该哈希值将请求固定分配到某一台后端服务器。这样来自同一IP地址的请求始终会被发送到同一台服务器。
    • 适用场景:适用于需要保持会话粘性的场景,比如用户登录后,后续请求希望始终由同一台服务器处理,以避免登录状态丢失等问题。
  4. 最少连接(Least Connections)
    • 工作原理:将新的请求分配到当前连接数最少的后端服务器。因为连接数少意味着服务器负载相对较轻,能更好地处理新请求。
    • 适用场景:适用于后端服务器性能相近,但处理请求所需时间不同的场景,优先将请求分配给负载轻的服务器,以提高整体处理效率。
  5. 加权最少连接(Weighted Least Connections)
    • 工作原理:在最少连接算法基础上,结合权重。根据服务器的权重以及当前连接数来综合判断,权重高且当前连接数相对少的服务器更易被分配到请求。
    • 适用场景:适用于后端服务器性能不同且处理请求所需时间有差异的场景,综合考虑服务器性能和当前负载进行请求分配。