深入理解Spring Cloud与微服务构建(第2版)
上QQ阅读APP看书,第一时间看更新

2.3 Dubbo简介

Dubbo是阿里巴巴开源的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务冶理方案。Dubbo广泛用于阿里巴巴的各大站点,有很多互联网公司也在使用这个框架,它包含如下核心内容。

•RPC远程调用:封装了长连接NIO框架,如Netty和Mina等,使用的是多线程模式。

•集群容错:提供了基于接口方法的远程调用的功能,并实现了负载均衡策略、失败容错等功能。

•服务发现:集成了Apache的Zookeeper组件,用于服务的注册和发现。

Dubbo框架的架构图如图2-10所示。Dubbo架构的流程如下。

(1)服务提供者向服务中心注册服务。

(2)服务消费者订阅服务。

(3)服务消费者发现服务。

(4)服务消费者远程调度服务提供者进行服务消费,在调度过程中,使用了负载均衡策略、失败容错的功能。

▲图2-10 Dubbo架构图

(5)服务消费者和提供者,在内存中记录服务的调用次数和调用时间,并定时每分钟发送一次统计数据到监控中心。

Dubbo是一个非常优秀的服务治理框架,在国内互联网公司应用广泛,它具有以下特性。

•连通性:注册中心负责服务的注册;监控中心负责收集调用次数、调用时间;注册中心、服务提供者、服务消费者为长连接。

•健壮性:监控中心宕机不影响其他服务的使用;注册中心集群,任意一个实例宕机自动切换到另一个注册中心实例;服务实例集群,任意一个实例宕机,自动切换到另一个可用的实例。

•伸缩性:可以动态增减注册中心和服务的实例数量。

•升级性:服务集群升级,不会对现有架构造成压力。