Dubbo的简单介绍
Dubbo是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。在今年的2月15号也就是18年的除夕那天。阿里将Dubbo共享给了Apache组织。
Dubbo是:
一款分布式服务框架
高性能和透明化的RPC远程服务调用方案
- SOA服务治理方案
Dubbo的应用场景和架构
Dubbo主要是用于分布式架构,和注册中心一起使用。常见的注册中心是Zeekeeper、Redis等,官方推荐的是使用Zeekeeper。
Dubbo的架构图:
调用流程:
1. 服务容器负责启动,加载,运行服务提供者。
2. 服务提供者在启动时,向注册中心注册自己提供的服务。
3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
Dubbo的注册中心之Zeekeeper
对于服务提供方,它需要发布服务,而且由于应用系统的复杂性,服务的数量、类型也不断膨胀;
对于服务消费方,它最关心如何获取到它所需要的服务,而面对复杂的应用系统,需要管理大量的服务调用。
而且,对于服务提供方和服务消费方来说,他们还有可能兼具这两种角色,即既需要提供服务,有需要消费服务。 通过将服务统一管理起来,可以有效地优化内部应用对服务发布/使用的流程和管理。服务注册中心可以通过特定协议来完成服务对外的统一。这就是注册中心的来处。
官方推荐的Dubbo的注册中心就是Zeekeeper。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
Dubbo的安装(windows)—此处省略
安装Dubbo首先得安装Zookeeper。
Zookeeper下载地址:http://mirror.bit.edu.cn/apache/zookeeper/
Dubbo下载地址:https://github.com/apache/incubator-dubbo
Dubbo的简单实例—基于Spring
明确需求:
- 用户系统
- 订单系统
- 用户系统需要查询某个用户的订单信息
- 订单系统需要查询某个用户的地址信息
那么这个时候用户系统和订单系统既是服务提供方也是服务消费者。
那么接下来,我们就开始写基于maven、Spring的Dubbo简单实例
新建三个项目:
dubbo-user 用户系统
dubbo-order 订单系统
dubbo-base 基本服务
.
Dubbo的简单实例—基于SpringBoot
-