熟悉ZooKeeper的朋友都清楚,这是一个好东西。只是搭建ZooKeeper集群却不是一件容易的事。使用数人云部署ZooKeeper集群?那就是分分钟的事。
注:ZooKeeper 介绍见本文尾部
数人云用户手册:集群管理
注意:
本文中使用了6台主机为大家更好的展现如何搭建集群环境。
·前三台主机为Master节点,主机类型请选择"计算节点" 和 "数据节点";
·第四、五、六台主机类型请选择"计算节点",用于部署ZooKeeper集群;
主机既包括可以连接互联网的物理主机,也可以是阿里云、UCloud、 AWS、Azure、首都在线和华为云等公有云上购买的任意一台云主机。
按照手册提示,完成集群创建后,请检查主机运行是否正常,查看群集如图所示:
·填写应用名称:zookeeper
·选择集群:es-demo
·添加应用镜像地址:testregistry.dataman.io/centos7/zookeeper-3.4.6 (数人云演示镜像)
·填写镜像版本:2015120202
·选择应用模式:HOST 模式
·选择应用类型:无状态应用
·主机选择:10.3.10.17,10.3.10.47,10.3.10.61
·选择容器规格: CPU:0.2 内存:512 MB
·添加环境变量
ZKLIST: 10.3.10.17:2888:3888,10.3.10.47:2888:3888,10.3.10.61:2888:3888
ENNAME: eth0 (slave主机的内网IP网卡名称,默认为eth0)
如图所示:
应用列表如图:
命令行下确认zookeeper集群正常:
所使用的 Dockerfile 和启动脚本全部开源,并上传到了数人的GITHUB,有兴趣的同学可以帮助一起改进。
Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务,使得分布式应用可以基于这些接口实现诸如同步、配置维护和分集群或者命名的服务。
zookeeper是一个由多个service组成的集群,一个leader,多个follower,每个server保存一份数据部分,全局数据一致,分布式读写,更新请求转发由leader实施.
更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行,数据更新原子性,一次数据更新要么成功,要么失败,全局唯一数据试图,client无论连接到哪个server,数据试图是一致的.
大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等),目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制.协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器,ZooKeeper:提供通用的分布式锁服务,用以协调分布式应用。