面试题答案
一键面试轮询(Round Robin)
- 工作原理:按顺序依次将请求分配到各个服务器节点。例如有服务器A、B、C,第一个请求分配到A,第二个到B,第三个到C,第四个又回到A,如此循环。
- 适用场景:适用于各服务器处理能力相近,且无明显性能差异的场景,能较为平均地分配负载。
加权轮询(Weighted Round Robin)
- 工作原理:为每个服务器节点分配一个权重值,权重越高,被分配到请求的概率越大。比如服务器A权重为2,B权重为1,那么在三次请求中,A可能会被分配到两次请求,B被分配到一次。
- 适用场景:当服务器硬件配置存在差异,处理能力不同时适用。性能强的服务器可设置较高权重,以便承担更多请求。
随机(Random)
- 工作原理:从可用服务器列表中随机选择一个服务器来处理请求。每次请求选择服务器的概率是均等的。
- 适用场景:简单且对服务器处理能力差异不太敏感的场景,可在一定程度上实现负载均衡。
加权随机(Weighted Random)
- 工作原理:和加权轮询类似,每个服务器节点有一个权重值,但请求分配不是按顺序,而是基于权重随机选择。权重高的服务器被随机选中的概率更大。
- 适用场景:同样适用于服务器处理能力不同的场景,相比加权轮询,选择更具随机性。
最少连接(Least Connections)
- 工作原理:将新请求分配到当前连接数最少的服务器节点。认为连接数少的服务器负载相对较轻,能更好地处理新请求。
- 适用场景:适用于处理长连接的应用场景,如数据库连接池等,可保证每个服务器的负载相对均衡。
源地址哈希(Source IP Hashing)
- 工作原理:根据客户端请求的源IP地址,通过哈希算法计算出一个哈希值,然后根据该哈希值将请求映射到特定的服务器节点。相同源IP的请求会始终被路由到同一服务器。
- 适用场景:适用于需要会话粘性(Session Affinity)的场景,比如某些用户的请求需要始终由同一服务器处理,以维持特定的会话状态。