文档章节

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

王庭
 王庭
发布于 2015/10/27 18:58
字数 1051
阅读 12137
收藏 25

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是默认配置


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 测试代码编写



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/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd    
http://code.alibabatech.com/schema/dubbo
http://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中!!


然后启动项目


三 DubboClient工程

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

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


1 dubboclient端代码


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/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd    
http://code.alibabatech.com/schema/dubbo
http://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端已经启动)

运行成功!


四 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=root
dubbo.admin.guest.password=guest


3 启动tomcat,访问.

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


© 著作权归作者所有

王庭
粉丝 16
博文 95
码字总数 133906
作品 0
海淀
程序员
私信 提问
加载中

评论(5)

登录404
不错学习了!分享一个Dubbo项目实战参考内容:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd
登录404
不错学习了!分享一个Dubbo项目实战参考内容:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd
登录404
不错学习了!分享一个Dubbo项目实战参考内容:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd
登录404
不错学习了!分享一个Dubbo项目实战参考内容:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd
墨竹
墨竹
写的不错
zookeeper+dubbo分布式环境搭建部署记录

最近在公司用到阿里的dubbo做RPC分布式服务化,记录一下项目服务环境搭建的一些过程,方便后来的同行可以少走些弯路,欢迎大家一起交流分享。 一、环境准备 6台机器如下: 用到的软件如下: ...

xiejunbo
2016/09/23
975
2
spring boot + dubbo + zookeeper 搭建及问题解决

Dubbo 是一款高性能Java RPC框架,现在有很多公司都在使用,鉴于技多不压身的原则,折腾一下这玩意 简介 spring boot 是当前比较流行的开发工具组合框架,他并不是一个新框架;由于它集合了很多...

zerokb-小浪
2018/09/30
220
5
dubbo + zookeeper的相关应用

一、首先介绍下DUBBO的背景 随着互联网的发展,一些大型网站的规模不断扩大,常规的垂直应用架构已经无法满足,分布式架构已经势在必行,DUBBO是一个分布式服务框架,在这种情况下诞生的。 ...

zheng854938169
2018/06/28
0
0
【Spring Boot】26.分布式

简介 在本章节你可以学习到: dubbo和zookeeper的基本特性 一个简单的集成项目 zookeeper可视化工具和dubbo可视化工具 分布式和集群的特点 分布式系统(distributed system)是建立在网络之上...

落花时节又逢卿
2018/12/28
29
2
dubbo-admin 环境搭建注意点

github 源码: https://github.com/alibaba/dubbo.git 下载到Eclipse 后,重新用Maven工程载入。 修改pom文件: 1、webx的依赖改为3.1.6版; <dependency> <groupId>com.alibaba.citrus</gr......

GoogleFan
2015/07/23
11.4K
7

没有更多内容

加载失败,请刷新页面

加载更多

服务器性能监控之New Relic 入门教程

New Relic 是一个很强大的服务器性能监控工具,New Relic目前专注于SaaS和App性能管理业务,它支持支持agent和API传送数据,能够对部署在本地或在云中的web应用程序进行监控、故障修复、诊断...

xiaolyuh
10分钟前
3
0
SpringBoot 集成ElasticSearch

一、ElasticSearch介绍 ElasticSearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库——无论是开源...

zw965
35分钟前
4
0
【JVM学习】2.Java虚拟机运行时数据区

来源: 公众号: 猿人谷 这里我们先说句题外话,相信大家在面试中经常被问到介绍Java内存模型,我在面试别人时也会经常问这个问题。但是,往往都会令我比较尴尬,我还话音未落,面试者就会“...

物种起源-达尔文
43分钟前
4
0
dart datetime

var date = DateTime.now().toUtc(); //格式化输出 String timestamp = "${date.year.toString()}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, ......

zdglf
今天
21
0
如何在Linux中复制文档

在办公室里复印文档过去需要专门的员工与机器。如今,复制是电脑用户无需多加思考的任务。在电脑里复制数据是如此微不足道的事,以致于你还没有意识到复制就发生了,例如当拖动文档到外部硬盘...

老孟的Linux私房菜
今天
47
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部