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 root@192.168.56.102:/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
测试成功