面试题答案
一键面试Round Robin(轮询)
- 工作原理:按照顺序依次将请求分配到各个服务器上。假设服务器列表为
[A, B, C]
,当有请求到来时,第一个请求分配到A
,第二个请求分配到B
,第三个请求分配到C
,第四个请求又回到A
,如此循环。这种策略实现简单,不考虑服务器的性能差异,平均分配请求,适用于服务器性能相近的场景。
Random(随机)
- 工作原理:从服务器列表中随机选择一台服务器来处理请求。每次请求到来时,通过随机算法在所有可用服务器中随机挑选一台。这种策略简单且在请求量足够大时能大致实现负载均衡,但可能会出现某些服务器长时间未被选中的情况。
Weighted Round Robin(加权轮询)
- 工作原理:为每个服务器分配一个权重值,权重代表服务器的处理能力。权重越高,被分配到请求的概率越大。例如,服务器
A
权重为2,服务器B
权重为1,在轮询时,每3个请求中,A
会被分配到2次,B
会被分配到1次。这种策略考虑了服务器性能差异,能更好地利用高性能服务器资源。
Weighted Random(加权随机)
- 工作原理:结合随机和权重的思想。根据每个服务器的权重,按照权重比例随机选择服务器。例如,服务器
A
权重为3,服务器B
权重为1,随机选择时,A
被选中的概率是B
的3倍。这样既具有随机性,又能根据服务器性能合理分配请求。
Least Connections(最少连接)
- 工作原理:优先将请求分配给当前连接数最少的服务器。系统会实时统计每个服务器的连接数,当新请求到来时,将请求发送到连接数最少的服务器上。这种策略适用于处理长连接的场景,能保证每个服务器的负载相对均衡,避免某个服务器因连接过多而性能下降。