回顾
大家好,我是老马。
最近 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 生命周期探针