2. Apache Dubbo概述

Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC框架,可以和Spring框架无缝集成。

RPC并不是一个具体的技术,而是指整个网络远程调用过程

Dubbo官网地址:http://dubbo.apache.org

Dubbo提供了三大核心能力:

  1. 面向接口的远程方法调用,

  2. 智能容错和负载均衡,

  3. 服务自动注册和发现

Dubbo架构图(Dubbo官方提供)如下:

节点角色说明:

虚线都是异步访问,实线都是同步访问
蓝色虚线:在启动时完成的功能
红色虚线(实线)都是程序运行过程中执行的功能

调用关系说明:

  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

下面项目的服务器用的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(设置了自动)

测试页面:

http://localhost:82/pages/main.html