基于ZooKeeper的Dubbo注册中心
Apr102013
临渊羡鱼不如退而结网,我们先搭建一个基于ZooKeeper的Dubbo注册中心。
Zookeeper注册中心安装
建议使用dubbo-2.3.3以上版本的zookeeper注册中心客户端。Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心。Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的 Zookeeper服务器即可,所有注册中心逻辑适配都在调用Zookeeper客户端时完成。如果需要,可以考虑使用taobao的zookeeper 监控:http://rdc.taobao.com/team/jm/archives/1450
安装:
wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz
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
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:registry
protocol
=
"zookeeper"
address
=
"10.20.153.10:2181,10.20.153.11:2181"
/>
管理控制台安装
管理控制台为内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。
安装:
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)
注册中心抽象
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选举,分布式锁等。
附带参考资料:
最佳实践http://rdc.taobao.com/team/jm/archives/1232
功能概述http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
Hadoop权威指南(第二版)
相关推荐
基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+...
基于zookeeper 监控dubbo provider 下线,提供dubbo 服务下线 邮箱预警,对dubbo 代码0入侵,完全独立部署,独立的JAR
这是一个基于Zookeeper 和 Dubbo框架的电商项目,包括前后台总共八个模块!
基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot...
dubbo provider consumer 基于zookeeper的远程调用代码服务样例,直接运行
spring+spring mvc+mybatis+mysql+dubbo整合开发任务流程后台管理系统.zip
Dubbo基于Zookeeper实现分布式实例,文档中有对应代码示例,也附有视频地址,看示例代码不明白的,可以再参考视频中的讲解来理解
基于Dubbo的webservice开发 内附文档
基于 DUBBO + ZOOKEEPER 的计量服务平台是互联网与传统计量检测服务业相结合的产物,平台系统设计充分考虑了计量行业特点,在此基础上 确定系统的建设目标,重点解决分布式系统集群中数据共享、数据一致性与服务...
dubbo例子,里面有基于zookeeper的注册中心,提供者和消费者
基于ZooKeeper的Dubbo注册中心
该示例代码是基于dubbo+zookeeper的微服务实战 订单模块/用户模块/API 使用ecplise开发详细说明见博客https://blog.csdn.net/weixin_39519416/article/details/88123067
springboot集成dubbo 1.api目录:存放消费者与提供者调用的service接口 2.consumer目录:消费者目录 调用提供者远程提供的接口实现 3.provider目录:提供者目录 提供给消费者...基于Zookeeper实现服务注册与发现demo
下载内容包含dubbo例子,里面有基于zookeeper的注册中心,提供者和消费者,可以直接运行,详细请看文件中包含的运行说明
SpringBoot2.1.5 + Dubbo 2.7.3 + Mybatis 3.4.2 + Zookeeper 3.4.14 +Seata 1.4.0整合来实现Dubbo分布式事务管理,使用Zookeeper 作为 Dubbo和Seata的注册中心和配置中心,使用 MySQL 数据库和 MyBatis来操作数据。...
beauty_ssm_dubbo, 将"优雅的SSM框架"服务化治理(基于Dubbo Zookeeper)
springboot2.2.2.RELEASE整合dubbo + zookeeper(基于当时都是较新的版本) 时间:2020年1月2日 准备 在linux上使用docker安装zookeeper(略,自行百度) 可选项 安装可视化监控管理后台dubbo-admin(不装不影响使用...
单纯的使用yml文件,不会再配置xml,基于dubbo-spring-boot-starter2.0版本,简单易配,都使用注解。中间件用zookeeper集群
#将"优雅的SSM框架"拆分为分布式架构(基于dubbo+zookeeper) Maven(模块化构建) Spring(IOC DI 声明式事务处理) SpringMVC(支持Restful风格) Hibernate Validate(参数校验) Mybatis(最少配置方案) Quartz...