面试题答案
一键面试- 轮询(Round Robin): 按顺序依次将请求分配到各个微服务实例。例如有三个微服务实例A、B、C,第一个请求分配给A,第二个给B,第三个给C,第四个又回到A,如此循环。这种算法简单,能平均分配请求,但未考虑实例性能差异。
- 加权轮询(Weighted Round Robin): 为每个微服务实例分配一个权重值,权重越高,被分配到请求的概率越大。比如实例A权重为2,实例B权重为1,请求分配顺序可能为A、A、B,以此类推。它考虑了不同实例的处理能力差异,处理能力强的实例可分配更多请求。
- 随机(Random): 每次从所有可用的微服务实例中随机选择一个来处理请求。这种算法简单,在实例数量足够多的情况下,能近似实现负载均衡,但可能出现某个实例短时间内多次被选中,而部分实例长时间未被选中的情况。
- 最小连接数(Least Connections): 优先将请求分配到当前连接数最少的微服务实例。它认为连接数少的实例处理能力相对空闲,能更好地处理新请求,适用于每个请求处理时间差异较大的场景,可避免将新请求分配到已经处理大量请求、负载较高的实例上。