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

  • Spring + Dubbo + zookeeper (linux) 框架搭建已关闭评论
  • 20 views
  • A+
所属分类:编程开发

dubbo简介

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

节点角色说明:

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) 框架搭建

5 在zookper-3.3.6/bin目录下执行

./zkServer.sh start 启动zookeeper

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

6 验证zookeeper是否启动

使用netstat -lpn | grep 2181

如果有端口号, 说明已经启动

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

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

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 dubbo的xml文件配置

<?xml version="1.0" encoding="UTF-8"?><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) 框架搭建

然后启动项目

三 DubboClient工程

dubboClient可以是web工程也可以是普通的javaproject.

我也是用的spring集成,但是使用的是junit进行测试,

1 dubboclient端代码

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

2 dubbo的xml配置

<?xml version="1.0" encoding="UTF-8"?><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) 框架搭建

运行成功!

四 dubbo-admin-2.5.4.war 管理控制台

把这个war包放到tomcat的webapps目录下

1 修改tomcat的端口号不要和其他服务冲突.

2 修改 WEB-INF 下的dubbo.properties文件

dubbo.registry.address=zookeeper://192.168.20.129:2181dubbo.admin.root.password=rootdubbo.admin.guest.password=guest

3 启动tomcat,访问.

点击 服务治理--提供者 可看到如下, 还有一些其他的信息,再查阅吧,暂时我也不是很清楚

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

  • 安卓客户端下载
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar