网站首页 > 博客文章 正文
关注△mikechen△,十余年BAT架构经验倾囊相授!
大家好,我是mikechen睿哥。
Dubbo是一款高性能的 RPC框架,也是大厂经常使用中间件,下面我详解Dubbo负载均衡策略@mikechen
Dubbo
Dubbo 作为一套成熟的分布式 RPC 框架,支持多种负载均衡策略,以实现服务调用的高效、均衡、可扩展。
默认状态下,Dubbo 使用的是 RandomLoadBalance(随机调用),它是一种体系效率高而应用场景广的策略。
Dubbo负载均衡策略
Dubbo 的负载均衡,是在服务消费者 (Consumer) 端实现的。
首先,Consumer 从注册中心(如 ZooKeeper),获取 Provider 列表。
然后,根据配置的负载均衡策略,从列表中选择一个 Invoker。
最后,执行远程调用,如下图所示:
客户端 -> Dubbo Consumer (LoadBalance) -> 多个 Dubbo Provider。
消费者从注册中心获取提供者列表后,根据配置的负载均衡策略,在本地选择一个 Invoker (服务提供者抽象) 进行远程调用。
Dubbo 负载均衡策略,如下:
策略名称 | 类名 | 原理概述 |
随机 | RandomLoadBalance | 按权重随机分配,默认策略 |
轮询 | RoundRobinLoadBalance | 顺序调用各服务节点,可加权重 |
最少活跃调用 | LeastActiveLoadBalance | 选择当前调用最少的节点 |
一致性响应 | ConsistentHashLoadBalance | 保证同一参数给同一节点,保持会话 |
RandomLoadBalance (默认)
原理
按照各节点的权重分配随机值,权重越大,被选中概率越高。
适用场景
- 节点性能相仿,需要均衡调用;
- 调用量大,希望随机分散;
- 允许一定程度上的“不稳定”;
RoundRobinLoadBalance
按照服务节点顺序轮询调用,如下图所示:
支持权重配置,实现有一个维持的调用记录;
适用
- 对调用顺序有需求(如按照 ID 轮询分发级联调用);
- 稳定性要求高;
LeastActiveLoadBalance
选择当前处于“最少活跃调用”的 Provider;
如果多个节点活跃数相同,再按权重随机;
适用
- 调用耗时不均衡,需要动态同步节点压力
- 对响应时间效果敏感场景
ConsistentHashLoadBalance
依据调用参数使用一致性响应算法;
保证同一参数给同一节点;
合适会话系统、分布式缓存(sessionId, userId);
适用
- 需要保持调用结果稳定性
- 分布式系统中需要“查询结果给同一节点”效果
总结
策略 | 适用场景 |
Random | 默认,性能均衡节点 |
RoundRobin | 顺序分配,需要轮询 |
LeastActive | 有性能差异或需效率优先 |
ConsistentHash | 分布式缓存、会话系统 |
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
猜你喜欢
- 2025-07-23 阿里二面必问:Dubbo支持几种负载均衡策略?
- 2025-07-23 Dubbo3.0应用级服务发现源码分析(dubbo服务引入)
- 2025-07-23 多年开发大牛用3700字带你搞懂阿里巴巴开源组件Nacos!
- 2025-07-23 七年Java开发的一路辛酸史:分享面试京东、阿里、美团后的心得
- 2025-07-23 牛逼!阿里又要发布一个逆天的开源框架了...
- 2025-07-23 Dubbo概述(dubbo详解)
- 2025-07-23 阿里一面:说一说Java、Spring、Dubbo三者SPI机制的原理和区别
- 2025-07-23 阿里巴巴为什么不用 ZooKeeper 做服务发现?
- 2025-07-23 白话DUBBO原理,通俗易记,再也不怕面试时讲不清楚了
- 2025-07-23 阿里:Spring Cloud对比下Dubbo,什么场景下该使用Spring Cloud?
你 发表评论:
欢迎- 最近发表
-
- 谷歌云推出印度尼西亚“BerdAIa for Security”网络安全计划
- 谷歌:已解决全球服务中断问题,受影响平台涉及Spotify、Discord等
- 不再单一依赖英伟达,OpenAI被曝开始租用谷歌AI芯片训练ChatGPT
- 谷歌云代理商:怎样通过谷歌云服务器搭建社交平台?
- 谷歌云服务遭遇全球性宕机,影响多家互联网巨头
- OpenAI正式将谷歌云纳入供应商名单
- 谷歌给Agent造了个“微信”,和MCP功能互补,多智能体协作更顺畅了
- OpenAI“去微软化”加速:最新引入谷歌(GOOGL.US)构建混合云生态
- 谷歌给Agent造了个“微信”,和MCP功能互补,多智能体协作更顺畅
- 谷歌与OpenAI携手:云合作背后的机遇与隐忧
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- messagesource (71)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)