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

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

单节点部署

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

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

zkCli客户端启动命令

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

zkCli创建节点

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

92查询成功
93查询成功

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

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

Too be continue......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容