Spring + Dubbo + zookeeper (linux) 框架搭建

四个步骤
一: 搭建zookeeper 消息中心
1 下载zookeeper安装文件
2  执行命令 tar zxvf zookeeper-3.4.6.tar.gz 解压,
3 到 zookeeper-3.3.6/conf 目录下
4 配置说明
5 在zookper-3.3.6/bin目录下执行
6 验证zookeeper是否启动
二 DubboServer 工程
1 测试代码编写
2 dubbo的xml文件配置
3 导出接口层的jar
三 DubboClient工程
1 dubboclient端代码
2 dubbo的xml配置
3 测试运行client端代码(zookeeper 和 dubboServer端已经启动)
四 dubbo-admin-2.5.4.war 管理控制台
dubbo简介
节点角色说明:
Provider:  暴露服务的服务提供方。
Consumer:  调用远程服务的服务消费方。
Registry:  服务注册与发现的注册中心。
Monitor:  统计服务的调用次调和调用时间的监控中心。
Container:  服务运行容器。

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


四个步骤
1 搭建zookeeper消息中心
2 搭建dubbo服务端代码
3 写dubbo客户端代码
4 dubbo提供的dubbo-admin-2.5.4.war 管理控制台
一: 搭建zookeeper 消息中心

1 下载zookeeper安装文件
    zookeeper-3.3.6.tar.gz
2  执行命令  tar zxvf zookeeper-3.4.6.tar.gz 解压,
3 到 zookeeper-3.3.6/conf 目录下
把zoo_sample.cfg 复制一份为zoo.cfg,作为默认配置文件


4 配置说明
tickTime :这个时间是作为  Zookeeper  服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个  tickTime  时间就会发送一个心跳。
dataDir :顾名思义就是  Zookeeper  保存数据的目录,默认情况下, Zookeeper  将写数据的日志文件也保存在这个目录里。
clientPort :这个端口就是客户端连接  Zookeeper  服务器的端口, Zookeeper  会监听这个端口,接受客户端的访问请求。
我的配置: 端口2181是默认配置
Spring + Dubbo + zookeeper (linux) 框架搭建_第1张图片

(添加dataLogDir会导致读取失败)
5 在zookper-3.3.6/bin目录下执行
./zkServer.sh start 启动zookeeper

6 验证zookeeper是否启动
使用netstat -lpn | grep 2181 
如果有端口号, 说明已经启动

ps: 因为我linux 是装在虚拟机里面, zookeer在虚拟机里,  DubboServer , DubboClient , DubboAdmin 都是在windows上, 注意要开放linux的2181端口

二 DubboServer 工程

DubboServer段是一个web工程,服务提供者, 我这里是dubbo和spring结合搭建.
spring的搭建过程,可参见   springmvc + mybatis配置
我这里仅是搭建spring和dubbo的例子,使用的最少的配置

1 测试代码编写
Spring + Dubbo + zookeeper (linux) 框架搭建_第2张图片

2 dubbo的xml文件配置
< beans xmlns="http: // www.springframework.org / schema / beans xmlns:p = "http://www.springframework.org/schema/p" xmlns:dubbo = "http://code.alibabatech.com/schema/dubbo"    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsd    http://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd" >< dubbo:application name="wt-dubbo-server"   /> < dubbo:registry address="zookeeper: // 192.168.20.129:2181 check = "false" />< dubbo:protocol name="dubbo" port="20880" serialization="hessian2"  /> < dubbo:service interface="com.DubboServer" ref="dubboServer"  /> beans >

3 导出接口层的jar
把server层的代码导出jar, 后面放到dubboClient中!!
Spring + Dubbo + zookeeper (linux) 框架搭建_第3张图片

然后启动项目

三 DubboClient工程
dubboClient可以是web工程也可以是普通的javaproject.
我也是用的spring集成,但是使用的是junit进行测试, 

1 dubboclient端代码
Spring + Dubbo + zookeeper (linux) 框架搭建_第4张图片

2 dubbo的xml配置
< beans xmlns="http: // www.springframework.org / schema / beans xmlns:p = "http://www.springframework.org/schema/p" xmlns:dubbo = "http://code.alibabatech.com/schema/dubbo"    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsd    http://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd" >< dubbo:application name="dys-client"   /> < dubbo:registry address="zookeeper: // 192.168.20.129:2181 check = "false" /> < dubbo:reference id="dubboServer" interface="com.DubboServer"  /> beans >

3 测试运行client端代码(zookeeper 和 dubboServer端已经启动)
Spring + Dubbo + zookeeper (linux) 框架搭建_第5张图片

运行成功!

四 dubbo-admin-2.5.4.war 管理控制台
把这个war包放到tomcat的webapps目录下 
1 修改tomcat的端口号不要和其他服务冲突.
2 修改 WEB-INF 下的dubbo.properties文件
dubbo.registry.address=zookeeper: //192.168.20.129:2181 dubbo.admin.root.password=rootdubbo.admin.guest.password=guest

3 启动tomcat,访问.
点击 服务治理--提供者 可看到如下,    还有一些其他的信息,再查阅吧,暂时我也不是很清楚
Spring + Dubbo + zookeeper (linux) 框架搭建_第6张图片


你可能感兴趣的:(dubbo)