MST

星途 面试题库

面试题:微服务架构中RPC常见的负载均衡策略有哪些,简要说明其原理

在微服务架构下,RPC作为一种常用的远程过程调用方式,负载均衡策略至关重要。请列举出至少三种常见的RPC负载均衡策略,并简要阐述每种策略是如何实现服务请求分配的。
14.4万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

随机(Random)

  1. 实现方式:从可用的服务实例列表中随机选择一个实例来处理请求。这种方式简单直接,每次请求时,每个实例都有相同的概率被选中。例如,假设有三个服务实例A、B、C,每次请求时,实例A、B、C被选中处理请求的概率均为1/3。

轮询(Round Robin)

  1. 实现方式:按照顺序依次将请求分配给每个服务实例。维护一个计数器,每次请求到来时,计数器加1,然后根据计数器的值依次选择对应的服务实例。比如有三个服务实例,第一次请求选择实例A,第二次请求选择实例B,第三次请求选择实例C,第四次请求又回到实例A,如此循环。

加权轮询(Weighted Round Robin)

  1. 实现方式:为每个服务实例分配一个权重,权重表示该实例的处理能力或性能。根据权重比例来分配请求。例如,有实例A权重为1,实例B权重为2,实例C权重为3。总权重为1 + 2 + 3 = 6。在分配请求时,第一个请求选择实例C(因为权重占比最大),第二个请求还是选择实例C,第三个请求选择实例B,第四个请求选择实例C,第五个请求选择实例B,第六个请求选择实例A,然后循环。

最少连接(Least Connections)

  1. 实现方式:优先将请求分配给当前连接数最少的服务实例。通过监控每个实例当前处理的连接数量,当有新请求时,选择连接数最少的实例来处理,认为连接数少的实例负载相对较轻,更有能力处理新的请求。

哈希一致性(Consistent Hashing)

  1. 实现方式:对请求的某个固定标识(如请求的IP地址、用户ID等)进行哈希计算,得到一个哈希值。将所有服务实例也映射到一个哈希环上。根据请求的哈希值在环上顺时针寻找最近的服务实例。这样可以保证相同标识的请求尽可能被路由到同一个实例,在服务实例数量变化时,只会影响到环上一小部分请求的路由,具有较好的扩展性和稳定性。