文档章节

基于ZooKeeper的Dubbo注册中心【转】

 梵蒂冈考虑过
发布于 2016/09/11 09:47
字数 1183
阅读 51
收藏 9

Zookeeper注册中心安装

建议使用dubbo-2.3.3以上版本的zookeeper注册中心客户端。Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心。Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的Zookeeper服务器即可,所有注册中心逻辑适配都在调用Zookeeper客户端时完成。如果需要,可以考虑使用taobao的zookeeper监控

安装:

   tar zxvf zookeeper-3.3.3.tar.gz

   cd zookeeper-3.3.3

cp conf/zoo_sample.cfg conf/zoo.cfg

配置:

vi conf/zoo.cfg

如果不需要集群,zoo.cfg的内容如下:(其中data目录需改成你真实输出目录)

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/dubbo/zookeeper-3.3.3/data

clientPort=2181

如果需要集群,zoo.cfg的内容如下:(其中data目录和server地址需改成你真实部署机器的信息)

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/dubbo/zookeeper-3.3.3/data

clientPort=2181

server.1=10.20.153.10:2555:3555

server.2=10.20.153.11:2555:3555

并在data目录下放置myid文件:(上面zoo.cfg中的dataDir)

mkdir data

vi myid

myid指明自己的id,对应上面zoo.cfg中server.后的数字,第一台的内容为1,第二台的内容为2,内容如下:

1

启动:

./bin/zkServer.sh start

停止:

./bin/zkServer.sh stop

命令行: (See: http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html)

telnet 127.0.0.1 2181
dump

或者

echo dump | nc 127.0.0.1 2181

用法:

dubbo.registry.address=zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181

或者

<dubbo:registryprotocol="zookeeper"address="10.20.153.10:2181,10.20.153.11:2181"/>

管理控制台安装

管理控制台为内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。

安装:

wget http://apache.etoak.com/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz

tar zxvf apache-tomcat-6.0.35.tar.gz

cd apache-tomcat-6.0.35

rm -rf webapps/ROOT

wget http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war

unzip dubbo-admin-2.4.1.war -d webapps/ROOT

配置: (或将dubbo.properties放在当前用户目录下)

vi webapps/ROOT/WEB-INF/dubbo.properties

dubbo.registry.address=zookeeper://127.0.0.1:2181

dubbo.admin.root.password=root

dubbo.admin.guest.password=guest

启动:

./bin/startup.sh

停止:

./bin/shutdown.sh

访问: (用户:root,密码:root 或 用户:guest,密码:guest)

http://127.0.0.1:8080/

 

注册中心抽象

Dubbo的将注册中心进行抽象,是得它可以外接不同的存储媒介给注册中心提供服务,有ZooKeeper,Memcached,Redis等。Dubbo抽象后,用户可以进行扩展,我们通过分析ZooKeeper这个实现来了解注册中心的低层。进过抽象之后,用户 只需要实现对应的Registry和RegistryFactory就可以了,ZooKeeper就是实现了ZookeeperRegistry,和ZookeeperRegistryFactory。

ZookeeperRegistryFactory的实现很简单,就是返回一个ZookeeperRegistry实例,所以主要的东西是在ZookeeperRegistry中实现的,在ZookeeperRegistry用户需要实现注册URL,注销URL,URL订阅,URL注销订阅和URL查询,在这里面设计到Zookeeper服务端的调用,都被封装到ZookeeperClient中,ZookeeperClient服务进行Server连接,断链;资源的CRUD。

ZooKeeper的价值

由于引入了ZooKeeper作为存储媒介,也就把ZooKeeper的特性引进来。首先是负载均衡,单注册中心的承载能力是有限的,在流量达到一定程度的时候就需要分流,负载均衡就是为了分流而存在的,一个ZooKeeper群配合相应的Web应用就可以很容易达到负载均衡;资源同步,单单有负载均衡还不够,节点之间的数据和资源需要同步,ZooKeeper集群就天然具备有这样的功能;命名服务,将树状结构用于维护全局的服务地址列表,服务提供者在启动的时候,向ZK上的指定节点/dubbo/${serviceName}/providers目录下写入自己的URL地址,这个操作就完成了服务的发布。其他特性还有Mast选举,分布式锁等。

核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx 
1.     项目核心代码结构截图

分布式框架介绍 - kafkaee - kafkaee的博客

   项目模块依赖

分布式框架介绍 - kafkaee - kafkaee的博客

 

特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化

2.    项目依赖介绍

   2.1 后台管理系统、Rest服务系统、Scheculer定时调度系统依赖如下图:
 

分布式框架介绍 - kafkaee - kafkaee的博客

       2.2 Dubbo独立服务项目依赖如下图:

 分布式框架介绍 - kafkaee - kafkaee的博客

3.  项目功能部分截图:

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客
 

zookeeper、dubbo服务启动 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客
 

dubbo管控台 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 REST服务平台

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

 

分布式框架介绍 - kafkaee - kafkaee的博客

© 著作权归作者所有

粉丝 27
博文 53
码字总数 105771
作品 0
深圳
私信 提问
加载中

评论(1)

梵蒂冈考虑过 博主
建议使用dubbo-2.3.3以上版本的zookeeper注册中心客户端。Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心。Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的Zookeeper服务器即可,所有注册中心逻辑适配都在调用Zookeeper客户端时完成。如果需要,可以考虑使用taobao的zookeeper监控:http://rdc.taobao.com/team/jm/archives/1450
dubbo + zookeeper的相关应用

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

zheng854938169
2018/06/28
0
0
Spring + Dubbo + zookeeper (linux) 框架搭建

dubbo简介 节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中...

王庭
2015/10/27
12.1K
5
Zookeeper分布式集群安装与配置(CentOS6)

Zk是一个分布式服务框架,提供了协调分布式应用的基本服务,zk集群主要是保证服务的可靠性和稳定性,介绍一下集群的安装与配置,在安装之前需要安装好jdk,jdk的安装请网上查找相应的方法 Du...

chaun
2015/08/14
207
0
zookeeper、dubbo、kafka随笔

1 zookeeper如何实现高可用 1 zookeeper 多台构成集群实现高可用,有三种角色群首(leader),追随者(follower),观察者(observer)。 Leader作为整个ZooKeeper集群的主节点,负责响应所有...

独一无二zz
2018/06/28
0
0
基于开源Dubbo分布式RPC服务框架的部署整合

详细介绍请参照官方地址:http://alibaba.github.io/dubbo-doc-static/Home-zh.htm,不再重复描述,本文主要记录了详细的开发整合步骤。 一、源码构建 这个网上很多教程,大家可以google/ba...

hanfeng
2015/11/03
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

R语言基本命令,dataframe增删改查

基本操作: 查询变量类型(假设变量名是a) class(a) 在R语言中: T 代表--> True F 代表--> False 与、或运算符 读取: 读取csv文件到dataframe(字符串不当作factor类型来处理,csv的na不作...

flash胜龙
27分钟前
4
0
重看《功夫熊猫1》却有了另一番感触

最近带着小孩,又看了一遍电影《功夫熊猫1》。但这次中间的很多情节,让我有了另一番新的感触。 电影的开头是熊猫阿宝,在梦里成为了一个武功盖世的大侠。这是他最大的梦想。 当阿宝热情洋溢...

我是菜鸟我骄傲
30分钟前
10
1
3.设计模式之二:原型模式【创建型模式】

在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样...

Eappo_Geng
39分钟前
7
0
Springboot+Junit测试出现No tests found matching

话不多说,出现以下错误,如果各注解都没问题,请检查包路径 测试用例包路径必须跟项目启动类包路径一致,不然也会报下面错误 java.lang.Exception: No tests found matching [{ExactMatche...

fangsw
46分钟前
5
0
封装,继承,多态?

1. 封装? 封装指的是利用抽象数据类型将数据和基于数据操作全部放在一个类里,使其构成一个不可分割的实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的实现细节,并对外只提供操作...

happywe
47分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部