基于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

命令行: (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选举,分布式锁等。

附带参考资料:

最佳实践http://rdc.taobao.com/team/jm/archives/1232

功能概述http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/

Hadoop权威指南(第二版)

时间: 2024-10-14 17:27:06

基于ZooKeeper的Dubbo注册中心的相关文章

基于ZooKeeper的Dubbo注册中心的简单例子

一:安装zookeeper 系统环境 Ubuntu 14.04.2 LTS x64 IP : 192.168.1.102 下载zookeeper-3.4.6.tar.gz到目录/opt,解压 mkdir /opt/zookeeper-3.4.6/data vim /opt/zookeeper-3.4.6/conf/zoo.cfg 输入如下内容 tickTime=2000 dataDir=/opt/zookeeper-3.4.6/data clientPort=2181 然后,启动 sh /opt

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

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

通过dubbo暴露接口调用方法,及基于zookeeper的dubbo涉及配置文件【转】

现在很流行的Dubbo很多朋友都听说过吧,最近我也在看这方面的东西,分享先我的心得笔记. 先说说我们团队要做的项目框架,很简单重在实现基于zookeeper的dubbo注册. 框架:springmvc+spring+zookeeper+dubbo 项目分三层,model存放数据,view页面展示.controller下面具体逻辑实现.通过dubbo消费方和供应方注册,供应方给消费方暴露接口,供消费方调用. 工程部署需要配置文件有: applicationContext-dubbo.xml {--

ZooKeeper 集群的安装、配置---Dubbo 注册中心

ZooKeeper 集群的安装.配置.高可用测试 Dubbo 注册中心集群 Zookeeper-3.4.6 Dubbo 建议使用 Zookeeper 作为服务的注册中心. Zookeeper 集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的.正是基于这个 特性,要将 ZK 集群的节点数量要为奇数(2n+1:如 3.5.7 个节点)较为合适. 服务器 1:192.168.1.11  端口:2181.2881.3881 服务器 2:192.168.1.12  端口:2182.2882

【转帖】基于Zookeeper的服务注册与发现

http://www.techweb.com.cn/network/hardware/2015-12-25/2246973.shtml 背景 大多数系统都是从一个单一系统开始起步的,随着公司业务的快速发展,这个单一系统变得越来越庞大,带来几个问题: 1. 随着访问量的不断攀升,纯粹通过提升机器的性能来已经不能解决问题,系统无法进行有效的水平扩展 2. 维护这个单一系统,变得越来越复杂 3. 同时,随着业务场景的不同以及大研发的招兵买马带来了不同技术背景的工程师,在原有达达Python技术栈的基础

Dubbo注册中心

Dubbo目前支持4种注册中心,(multicast zookeeper redis simple)   推荐使用Zookeeper注册中心, Multicast注册中心 不需要启动任何中心节点,只要广播地址一样,就可以互相发现 组播受网络结构限制,只适合小规模应用或开发阶段使用. 组播地址段: 224.0.0.0 - 239.255.255.255 相关概念解析: 提供方启动时广播自己的地址. 消费方启动时广播订阅请求. 提供方收到订阅请求时,单播自己的地址给订阅者,如果设置了unicast=

基于url发布无注册中心dubbo服务demo

1:创建dubbo-server maven工程 2:分别在dubbo-server下创建2个模块server-api(定义接口)和server-provider(实现接口) server-api: package com.cn.dubbo; public interface IGpHello { String sayHello(String msg); } server-provider: package com.cn.dubbo; public class GpHelloImpl imple

安装 Dubbo 注册中心(Zookeeper-3.4.6)

Dubbo 建议使用 Zookeeper 作为服务的注册中心. 注册中心服务器(192.168.3.71)配置,安装 Zookeeper: 1. 修改操作系统的/etc/hosts 文件中添加: # zookeeper servers 192.168.3.71 edu-provider-01 2. 到 http://apache.fayea.com/zookeeper/下载 zookeeper-3.4.6: $ wget http://apache.fayea.com/zookeeper/zoo

开发dubbo应用程序(二)dubbo注册中心相关概述

1.注册中心概述 ? 在Dubbo微服务体系中,注册中心是其核心组件之一.Dubbo通过注册中心实现了分布式环境中各微服务之间的注册与发现,是各分布式节点之间的纽带.其主要作用如下: 动态加入.一个服务提供者通过注册中心可以动地把自己暴露给其他消费者,无序消费者逐个去更新配置文件; 动态发现.一个消费者可以动态地感知新的配置.路由规则和新的服务提供者,无需重启服务使之生效: 动态调整.注册中心支持参数的动态调整,新参数自动更新到所有相关服务节点: 统一配置.避免了本地配置导致每个服务的配置不一致