回顾
大家好,我是老马。
最近 dubbo3.x 在公司内部分享,于是想系统梳理一下。
总体思路是官方文档入门+一些场景的问题思考+源码解析学习。
微服务生态
Dubbo 社区和众多优秀的开源项目一起围绕 Dubbo 建立了丰富的微服务生态支持,这让开发者从选型 Dubbo 作为开发框架的第一天,就无需担心后续的服务治理诉求,Dubbo 对每一个常见问题均提供了生产级的解决方案。
以下表格为基于最新 Dubbo Java 3.2.x 版本统计的生态组件支持情况,后续将根据开发进展持续更新。同时每个语言支持的组件完善度会有一定差异,具体请参见各个 语言参考手册 内的详细说明
| 功能 | 组件列表 | 组件列表 | 组件列表 | 组件列表 | 组件列表 | 
|---|---|---|---|---|---|
| 服务发现 | Zookeeper | Nacos | Kubernetes Service | DNS【开发中】 | 更多 | 
| 动态配置 | Zookeeper | Nacos | Apollo | Kubernetes【开发中】 | 更多 | 
| 元数据管理 | Zookeeper | Nacos | Redis | Kubernetes【开发中】 | 更多 | 
| RPC 协议 | HTTP/2 (Triple) | TCP | HTTP/REST【Alpha】 | gRPC | 更多 | 
| 可视化观测平台 | Admin | Grafana | Prometheus | - | - | 
| 全链路追踪 | Zipkin | Skywalking | OpenTelemetry | - | - | 
| 限流降级 | Sentinel | Resilience4j | Hystrix | - | - | 
| 分布式事务 | Seata | - | - | - | - | 
| 网关 | Higress | APISIX | Shenyu | Envoy | - | 
| 服务网格 | Istio【开发中】 | Aeraka | OpenSergo【开发中】 | Proxyless【Alpha】 | 更多 | 
进阶
控制服务调用行为
- 
    
服务版本
 - 
    
服务分组
 - 
    
分组聚合
 - 
    
异步调用
 - 
    
异步执行
 - 
    
流式通信
 - 
    
响应式编程
 - 
    
泛化调用
 - 
    
泛化实现
 - 
    
调用链路传递隐式参数
 - 
    
RPC调用上下文
 - 
    
调用触发事件通知
 - 
    
服务端对客户端进行回调
 - 
    
只订阅
 - 
    
只注册
 - 
    
运行时动态指定 IP 调用
 - 
    
直连提供者
 - 
    
启动时检查
 - 
    
本地调用
 - 
    
参数校验
 - 
    
本地伪装
 - 
    
本地存根
 - 
    
回声测试
 - 
    
调用信息记录
 - 
    
延迟暴露
 - 
    
集群容错
 - 
    
服务降级
 
诊断与调优
- 
    
端口协议复用
 - 
    
线程池隔离
 - 
    
多协议
 - 
    
多注册中心
 - 
    
请求耗时采样
 - 
    
线程模型
 - 
    
服务引用配置对象缓存
 - 
    
路由状态采集
 - 
    
负载均衡
 - 
    
注册信息简化
 - 
    
调用结果缓存
 - 
    
并发控制
 - 
    
连接控制
 - 
    
延迟连接
 - 
    
粘滞连接
 - 
    
支持 Graal VM
 - 
    
导出线程堆栈
 - 
    
Kryo 和 FST 序列化
 - 
    
自定义服务容器
 - 
    
优雅停机
 - 
    
主机地址自定义暴露
 - 
    
一致性哈希选址
 - 
    
日志框架适配及运行时管理
 - 
    
Kubernetes 生命周期探针
 
