Dubbo是什么
Dubbo是一个分布式服务框架,它提供了RPC通信与微服务治理两大关键能力,详见Apache Dubbo。
Dubbo通常用于开发大型的分布式系统,如:微服务架构。
Dubbo生态
与Dubbo框架相关的有多个子项目,如:dubbo-admin,详见Dubbo项目仓库。
在大型分布式系统中,与Dubbo框架一起配合使用的还有其他组件,如:
- 注册中心:Zookeeper,Nacos
- 配置中心:Zookeeper,Nacos,Apollo
- 限流降级:Sentinel,Hystrix
- 链路追踪:SkyWalking
- 网关:Apache APISIX
Dubbo有哪几种集群容错方案
集群容错方案 | 说明 |
---|---|
Failover Cluster | 失败自动切换,自动重试其它服务器(默认) |
Failfast Cluster | 快速失败,立即报错,只发起一次调用 |
Failsafe Cluster | 失败安全,出现异常时,直接忽略 |
Failback Cluster | 失败自动恢复,记录失败请求,定时重发 |
Forking Cluster | 并行调用多个服务器,只要一个成功即返回 |
Broadcast Cluster | 广播逐个调用所有提供者,任意一个报错则报错 |
Dubbo有哪几种负载均衡策略
负载均衡策略 | 说明 |
---|---|
Random LoadBalance | 随机,按权重设置随机概率(默认) |
RoundRobin LoadBalance | 轮询,按公约后的权重设置轮询比率 |
LeastActive LoadBalance | 最少活跃调用数,相同活跃数的随机 |
ConsistentHash LoadBalance | 一致性 Hash,相同参数的请求总是发到同一提供者 |
Dubbo与Spring Cloud的对比
组件 | 服务注册中心 | 服务监控 | 断路器 | 服务网关 | 分布式配置 | 服务跟踪 | 消息总线 | 数据流 | 批量任务 |
---|---|---|---|---|---|---|---|---|---|
Dubbo | Zookeeper | Dubbo-monitor | 不完善 | 无 | 无 | 无 | 无 | 无 | 无 |
Spring Cloud | Spring Cloud Netflix Eureka | Spring Boot Admin | Spring Cloud Netflix Hystrix | Spring Cloud Netflix Gateway | Spring Cloud Config | Spring Cloud Sleuth | Spring Cloud Bus | Spring Cloud Stream | Spring Cloud Task |
【参考】
https://www.jianshu.com/p/4affde351aec 架构解析:Dubbo3 应用级服务发现如何应对双11百万集群实例
https://tianfeng.cc/article/14419 实践案例:平安健康的 Dubbo3 迁移历程总结
https://blog.csdn.net/wangw_2007/article/details/106589382 浅谈SPI扩展机制
https://zhuanlan.zhihu.com/p/148144666 搞懂dubbo的SPI扩展机制
https://zhuanlan.zhihu.com/p/382200101 秒懂Dubbo框架(原理篇)