Apache Dubbo是一个分布式服务框架,于2019年5月,正式称为Apache的顶级项目。前身于2012年开源,但是2014年停止维护,所幸阿里巴巴2017年9月重新对Dubbo启动了维护并长期投入规划。
Apache Dubbo主要实现了多个系统之间的高性能、透明化调用,是一个RPC框架,不过相比普通RPC框架,它还提供了服务治理功能,如服务注册、监控、容错、路由等。
Apache Dubbo提供不仅限于如下功能:
- 面向接口代理的高性能RPC调用:服务以接口为力度,屏蔽远程调用底层细节;
- 智能负载均衡:内置多种负载均衡策略,智能感知节点健康状况,减少调用延迟,提升吞吐;
- 服务自动注册与发现:支持多种注册中心服务,服务实例上下线实时感知;
- 高度可扩展能力:遵循微内核+插件的涉及原则,所有核心能力如Protocol、Transport、Serialization被设计为扩展点,平等对待内置实现与第三方实现;
- 运行期流量调度:内置条件、脚本等路由策略,通过配置不同的路由规则,实现灰度发布、同机房优先等功能;
- 可视化的服务治理与运维:提供丰富治理、运维工具,随时查询服务元数据、服务建康状态及调用统计,实施下发路由策略、调整配置参数。
部署架构
- 注册中心:协调Consumer与Provider之间的地址注册于发现。
- 配置中心
- 存储Dubbo启动阶段的全局配置,保证配置的跨环境共享与全局一致性;
- 负责服务治理规则(路由规则、动态配置等)的存储与推送;
- 元数据中心
- 接收Provider上报的服务接口元数据,未Admin等控制台提供运维能力(如服务测试、接口文档等);
- 作为服务发现机制的补充,提供额外的接口/方法级别的配