ZooKeeper-分布式利器(1)——部署与运行

    ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。ArcGIS Server在底层使用到了ZooKeeper,所以有必要研究一下它独特的机制。

单节点部署

ZooKeeper的部署是非常简单的,下载解压后,可以得到这样的目录。

ZooKeeper-分布式利器(1)——部署与运行_第1张图片
ZooKeeper目录

如果你的机器有java环境,此目录本身就可以运行。

1.修改配置文件conf/zoo.cfg 

tickTime = 2000

dataDir = /tmp/zookeeper/data

dataLogDir = /tmp/zookeeper/logs

clientPort = 2181

以上参数说明:

tickTime: zookeeper中使用的基本时间单位, 毫秒值.

dataDir: 数据目录. 可以是任意目录.

dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.

clientPort: 监听client连接的端口号.

2.配置完毕,执行bin/zkServer 即可运行一个单节点的ZooKeeper服务器。

启动ZooKeeper命令

3.执行bin/zkCli 即可打开一个客户端连接ZooKeeper服务器进行操作。

启动Cli命令

集群部署

集群模式是指在多台机器中启动多个ZooKeeper进程,并组成一个集群。

1.将ZooKeeper目录在三个机器上部署,并修改ZooKeeper/conf/zoo.cfg文件为:

tickTime=2000

initLimit=5   

syncLimit=2   

dataDir=/tmp/zookeeper/data

dataLogDir=/tmp/zookeeper/logs

clientPort=2181

server.0=192.168.100.91:2888:3888

server.1=192.168.100.92:2888:3888

server.2=192.168.100.93:2888:3888

以上新增参数说明:

initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000(毫秒)=10秒.

syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.

server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口.

2.在dataDir中新建myid文件,写入数字,例如在100.90机器上的/tmp/zookeeper/data/myid写入0,在100.91机器上的/tmp/zookeeper/data/myid写入1,在100.92机器上的/tmp/zookeeper/data/myid写入2

备注:如果是windows系统,可以创建一个文本文档,写上服务器序号并保存,然后删掉扩展名.txt即可。

3.配置完毕以后,分别在91 92 93机器上执行bin/zkServer ,即可启动整个ZooKeeper集群。

Test 这里可以做一个简单的测试,看同步数据能否成功。

1.分别在91 92 93上启动客户端连接到本机节点,zkCli -server localhost:2181

ZooKeeper-分布式利器(1)——部署与运行_第2张图片
zkCli客户端启动命令

2.在91上执行 create /c1project c1projecttest 创建一个ZNode,并通过get /c1project 验证是否成功。

ZooKeeper-分布式利器(1)——部署与运行_第3张图片
zkCli创建节点

3.在92 93上分别执行get /c1project ,查找此节点下的数据。

ZooKeeper-分布式利器(1)——部署与运行_第4张图片
92查询成功
ZooKeeper-分布式利器(1)——部署与运行_第5张图片
93查询成功

这表明,跨越三台机器的ZooKeeper集群成功部署搭建。

本篇文章到此结束,下篇文章将会涉及到ZooKeeper的基础概念以及应用场景示例。

Too be continue......

你可能感兴趣的:(ZooKeeper-分布式利器(1)——部署与运行)