您的位置:首页 > 其它

zookeeper集群与Dubbo的实现与整合

2015-12-24 10:34 162 查看
ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。

有关ZooKeeper的介绍,网上很多,也可以参考文章后面,我整理的一些相关链接。

下面,我们简单说明一下ZooKeeper的配置。

环境介绍:

本次安装由于是集群模式,将在三台不同的机器上进行,也可以在同一台机器上,使用不同端口;

server01    192.168.1.30
server02    192.168.1.35
server03    192.168.1.36
OS:         CentOs-6.5
jdk:        1.7xx


一、安装准备与单台配置:

1、首先解压zookeeper安装包,并移动到自己制定目录下:

shell> tar zxf zookeeper-3.3.6.tar.gz
shell> mv zookeeper-3.3.6 /usr/local/zookeeper


2、创建配置文件,并启动:

shell> cd /usr/local/zookeeper/conf
shell> vim zoo.cfg

配置文件内容如下:
tickTime=200
dataDir=/usr/local/zookeeper/data/zookeeper
clientPort=2181
initLimit=5
syncLimit=2

启动server
shell> cd /usr/local/zookeeper/bin/
shell> ./zkServer.sh start


可以根据具体需求配置日志,查看日志或者端口确认是否启动成功;zookeeper的单台配置,到此已完成,相对于来讲,非常简单。

二、集群的配置与注意事项:

1、首先安装单台的步骤一样,配置文件有如下修改:

tickTime=200
dataDir=/usr/local/zookeeper/data/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.1.30:2888:3888
server.2=192.168.1.35:2888:3888
server.3=192.168.1.36:2888:3888


在这里需要提示的是,如果部署在同一台机器上,端口一定不可以冲突,另外server的配置,可以使用IP也可以时候主机名。将此配置文件,放在三台需要集群的机器上即可;

2、配置集群ID:

在所有需要集群的机器上,根据配置文件中server.x对应的id,来设置每个集群节点的ID即可,存放路径为datadir目录下:

server1主机上操作:
server1> echo "1" > /usr/local/zookeeper/data/zookeeper/myid
server2主机上操作:
server2> echo "2" > /usr/local/zookeeper/data/zookeeper/myid
server3主机上操作:
server3> echo "3" > /usr/local/zookeeper/data/zookeeper/myid


3、启动集群;

在各个集群节点上,启动zookeeper服务,第一个启动的肯定会有报错信息,因为需要联系其他节点而联系不上,此错误可以忽略,进入到各个机器的zookeeper的bin目录下执行如下命令:

server1 启动:
server1> ./zkServer.sh start
server2 启动:
server2> ./zkServer.sh start
server3 启动:
server4> ./zkServer.sh start


4、集群启动后的验证:

此验证同样可以使用端口也可以查看zookeeper的状态来判读是否启动正常;

server1> ./zkServer.sh status

JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader


server2> ./zkServer.sh status

JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower


server3> ./zkServer.sh status

JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower


至此zookeeper集群启动完成,三个集群的状态,肯定是一个leader和两个follower , 而leader也是随机的,并非固定的某台机器,所以集群中只要有leader即可。

三、与dubbo的整合:

1、首先下载安装包:

wget http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war[/code] 
2、安装tomcat的环境

参考其他文档,这里不做详尽描述


3、将此工程解压到tomcat的webapps/ROOT目录下

删除原有测试工程:

shell> rm -rf /usr/local/tomcat/webapps/ROOT/*


解压工程到相应目录下:

unzip dubbo-admin-2.4.1.war -d /usr/local/tomcat/webapps/ROOT/


修改配置文件,使其可以连接zookeeper:

shell> vim /usr/local/tomcat/webapps/ROOT/WEB-INF/dubbo.properties
内容根据实际的端口IP进行配置:
dubbo.registry.address=zookeeper://192.168.1.30:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest


启动tomcat,访问tomcat端口,出现登录页面即可;用户和密码默认为root

PS:一定要使用jdk1.7版本,在1.8版本中,会出现dubbo工程初始化失败等错误,导致工程启动失败!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zookeeper dubbo 集群