Dubbo框架概述

Dubbo是什么

Dubbo是一个分布式服务框架,它提供了RPC通信与微服务治理两大关键能力,详见Apache Dubbo
Dubbo通常用于开发大型的分布式系统,如:微服务架构。

Dubbo生态

与Dubbo框架相关的有多个子项目,如:dubbo-admin,详见Dubbo项目仓库

在大型分布式系统中,与Dubbo框架一起配合使用的还有其他组件,如:

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框架(原理篇)