上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是一个非常优秀的服务治理框架,在国内互联网公司应用广泛,它具有以下特性。
•连通性:注册中心负责服务的注册;监控中心负责收集调用次数、调用时间;注册中心、服务提供者、服务消费者为长连接。
•健壮性:监控中心宕机不影响其他服务的使用;注册中心集群,任意一个实例宕机自动切换到另一个注册中心实例;服务实例集群,任意一个实例宕机,自动切换到另一个可用的实例。
•伸缩性:可以动态增减注册中心和服务的实例数量。
•升级性:服务集群升级,不会对现有架构造成压力。