ZooKeeper的部署与运行

     这篇博文主要介绍一下通过单机和集群两种方式部署一个ZooKeeper,以及如何将其顺利的运行起来。


     一、系统环境


     通常对Java开源产品而言,在部署与运行之前,总是需要搭建一个合适的环境,通常包括操作系统和Java环境两个方面。


     1.操作系统

     ZooKeeper对不同平台的支持都很好,在现在绝大多数主流的操作系统上都能够正常运行,如果Linux/MacOSX/Winndows等。


     2.Java环境

     ZooKeeper使用Java语言编写,因此它的运行环境需要Java环境的支持,也就是需要有JDK的支持。


     二、集群与单机


     ZooKeeper有两种运行模式:集群模式和单机模式,下面将分别对两种运行模式的安装和配置进行简要讲解。


     1.集群模式

     现在,我们开始讲解如何使用三台机器来搭建一个ZooKeeper集群。首先,我们假设已经准备好三台Linux互相联网的Linux机器,它们的IP地址分别为IP1,IP2和IP3.


     ①下载Java运行环境,确保你已经安装了JDK1.6或者更高版本的JDK.


     ②下载ZooKeeper安装包。


     下载地址为http://zookeeper.apache.org/releases.html.用户可以选择稳定版本(stable)进行下载,下载完成后会得到一个文件名类似于zookeeper-x.x.x.tar.gz的文件,然后使用tar 命令解压下载好的文件。


                 ZooKeeper的部署与运行_第1张图片

                                           图一 ZooKeeper的目录结构 


     ③配置文件zoo.cfg

     初次使用ZooKeeper,需要将%ZK_HOME%/conf目录下的zoo_sample.cfg文件重命名为zoo.cfg,并且按照如下代码进行简单配置即可:


                                        ZooKeeper的部署与运行_第2张图片

                                          图二 集群模式下配置zoo.cfg                                             


     关于ZooKeeper的参数配置,有几点需要注意的地方:

     a.在集群模式下,集群中的每台机器都需要感知到整个集群中的机器序号。同事,在每台ZooKeeper机器上,我们都需要在数据目录(dataDir参数指定的那个目录)下创建一个myid文件,该文件只有一行内容,并且是一个数字,即对应于每台机器上的ServerID数字。

     b.在ZooKeeper的设计中,集群中所有机器上zoo.cfg文件的内容都应该是一直的。

     c.要确保每个服务器的myid文件中的数字不同,并且和自己所在机器的zoo.cfg中server.id=host:port:port的id值一致。另外,id的范围是1到255.


     ④创建myid文件


     在dataDir所配置的目录下,创建一个名为myid的文件,在该文件的第一行写上一个数字,和zoo.cfg当前机器的编号对应上。


     ⑤按照相同的步骤,为其他机器都配置上zoo.cfg和myid文件。


     ⑥启动服务器。


     所有选项都已经基本配置完毕,可以使用%ZK_HOME%/bin目录下的zkServer.sh脚本进行服务器的启动:如下


                      ZooKeeper的部署与运行_第3张图片

                                          图三   启动ZooKeeper服务器


     2.单机模式


     单机模式和集群模式类似,只需要修改zoo.cfg的配置即可:


                                         ZooKeeper的部署与运行_第4张图片

                                          图四 单机模式下的zoo.cfg配置


     三、运行和停止服务

     

     我们可以使用ZooKeeper%ZK_HOME%/bin目录下的将本来运行和停止ZooKeeper服务:


     1.运行服务

     


     2.停止服务

     


     至此,便是对使用ZooKeeper的简单介绍。下一篇博文将给继续介绍一下如果使用客户端对ZK进行操作。





    

你可能感兴趣的:(Dubbo+Zookeeper)