ZooKeeper+Dubbox分布式框架

1.Dubbox概况

  dubbox是一个远程服务调用的分布式框架,致力于SOA架构服务治理方案,满足服务与web层完全分离的需求。

节点角色说明:

   Provider: 暴露服务的服务提供方。

· Consumer: 调用远程服务的服务消费方。

· Registry: 服务注册与发现的注册中心。

· Monitor: 统计服务的调用次调和调用时间的监控中心。

· Container: 服务运行容器。

调用关系说明:

· 0. 服务容器负责启动,加载,运行服务提供者。

· 1. 服务提供者在启动时,向注册中心注册自己提供的服务。

· 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。

· 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

· 4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,

如果调用失败,再选另一台调用。

· 5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计

数据到监控中心。

2.注册中心ZooKeeper

  官方推荐使用 zookeeper 注册中心。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。

  Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbox 服务的注册中心,工业强度较高,可用于生产环境。

安装:

  进入官网下载地址:http://mirror.bit.edu.cn/apache/zookeeper/ 选一个版本

  放到Centos服务器上

    scp /Users/chen/Downloads/zookeeper-3.4.10.tar.gz [email protected]:/root

  登录服务器

    cd /root

    tar -zxvf zookeeper-3.4.10.tar.gz

  创建data文件夹

    cd zookeeper-3.4.6/

    mkdir data

  配置文件改名

    cd conf

    mv zoo_sample.cfg zoo.cfg

  编辑

    vim zoo.cfg

  修改 data 属性:dataDir=/root/zookeeper-3.4.6/data

  wq命令保存

  启动

    cd /root/zookeeper-3.4.6/bin/ && ./zkServer.sh start  

  

  出现这个说明成功启动

3.测试案例

  

  Maven的中央仓库中找不到Dubbox的jar包,需要手动将Dubbox的jar包安装到本地仓库中。

    mvn install:install-file -Dfile=/Users/chen/Downloads/dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar

  

  创建Maven项目,编写服务提供者和服务消费者,我保存到了github上面,大家可以参考修改

  提供者

    https://github.com/cracker13/dubboxdemo-service

  消费者

    https://github.com/cracker13/dubboxdemo-web

  访问地址

    http://localhost:8082/user/showName.do

  测试成功

   

猜你喜欢

转载自www.cnblogs.com/cracker13/p/9916455.html