Dubbo复习
2. Apache Dubbo概述
Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC框架,可以和Spring框架无缝集成。
RPC并不是一个具体的技术,而是指整个网络远程调用过程
Dubbo官网地址:http://dubbo.apache.org
Dubbo提供了三大核心能力:
面向接口的远程方法调用,
智能容错和负载均衡,
服务自动注册和发现
Dubbo架构图(Dubbo官方提供)如下:

节点角色说明:

虚线都是异步访问,实线都是同步访问
蓝色虚线:在启动时完成的功能
红色虚线(实线)都是程序运行过程中执行的功能
调用关系说明:
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
下面项目的服务器用的Tomcat7,dubbo发布的服务端口号20881,注册中心Zookeeper端口号是2181

3. 服务注册中心Zookeeper
通过前面的Dubbo架构图可以看到,Registry(服务注册中心)在其中起着至关重要的作用。Dubbo官方推荐使用Zookeeper作为服务注册中心。
3.1 Zookeeper介绍
Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 。
Zookeeper树型目录服务:

流程说明:
- 服务提供者(Provider)启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址
- 服务消费者(Consumer)启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址
- 监控中心(Monitor)启动时: 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者 URL 地址
3.2 安装Zookeeper
下载地址:http://archive.apache.org/dist/zookeeper/
3.3 启动、停止Zookeeper

启动:目录栏输入cmd,黑窗口输入zkServer.cmd打开(或者直接双击运行)
改了下路径,因为用的windows而不是Linux

启动成功:

如何使用:打开zkCli:

查看目录结点:

4. Dubbo快速入门
Dubbo作为一个RPC框架,其最核心的功能就是要实现跨网络的远程调用。本小节就是要创建两个应用,一个作为服务的提供方,一个作为服务的消费方。通过Dubbo来实现服务消费方远程调用服务提供方的方法。
4.1 服务提供方开发
开发步骤:
先创建一个dubbodemo的文件夹。在文件夹下创建提供者和消费者项目。
(1)创建maven工程(打包方式为war)dubbodemo_provider,在pom.xml文件中导入如下坐标
5. Dubbo管理控制台
启动zookeeper和Dubbo管理控制台

http://localhost:8080/dubbo-admin-2.6.0/
启动centOS克隆4,xshell连上,启动mysql(设置了自动)
测试页面: