Dubbo 框架中提供了哪几种负载均衡策略,各自适用于什么场景?
考察说明
考查对 Dubbo 负载均衡策略的掌握程度及应用场景的理解。
回答思路
- 【回答框架 1】Dubbo 内置了多种负载均衡策略,用于在服务调用时从多个提供者中选择一个进行请求分发。
- 【回答框架 2】常见的策略包括随机、轮询、最少活跃调用数、一致性哈希等。随机策略根据权重随机选择,权重越大被选中的概率越高,适用于服务端性能相近的场景。
- 【回答框架 3】轮询策略按顺序依次选择提供者,也支持权重配置,适用于请求处理时间较均匀的情况。
- 【回答框架 4】最少活跃调用数策略会优先选择当前活跃调用数最少的提供者,能动态感知服务端的负载情况,适用于处理能力不均或请求耗时差异大的场景。
- 【回答框架 5】一致性哈希策略根据请求参数进行哈希,将请求映射到固定的提供者,适用于需要会话保持或缓存命中的场景。用户可以通过配置文件或注解指定策略,也可以自定义扩展。
- 【关键点 1】Dubbo 默认负载均衡策略为随机策略。
- 【关键点 2】支持通过 weight 参数调整不同提供者的权重。
- 【关键点 3】一致性哈希策略适用于具有状态或缓存需求的调用。
- 【关键点 4】最少活跃调用数策略能动态感知服务端负载。
- 【关键点 5】可通过 SPI 机制扩展自定义的负载均衡策略。
- 【易错点 1】随机策略在权重差异大时,可能导致部分提供者过载。
- 【易错点 2】一致性哈希策略在提供者列表变化时可能导致哈希环重建,影响部分请求映射。
- 【易错点 3】轮询策略在请求处理时间差异大时,可能导致负载不均。