一文简单了解并部署Zookeeper集群


  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
  • GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。
  • 作者:蟹黄瓜子
  • 文章来源:GreatSQL社区投稿


1.Zookeeper概述

Zookeeper对于很多人开始可能都有所耳闻,他的使用场景也很多,可以以节点的形式存储持久化数据,也可以使用这一特性来作为微服务的服务注册中心,简单来说,Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。

Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分布式服务管理框架。是一个文件系统,负责存储和管理大家都关心的数据,然后接受观察者的注册;也是一种通知机制,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。

2.Zookeeper的应用场景和一些注意事项

ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个 ZNode 都可以通过其路径唯一标识。

Zookeeper的应用场景有许多,比如统一的配置管理,在许多分布式环境中,通常一个服务集群的配置文件信息是一致的,如果需要修改配置信息内容,不可能逐个对每个服务做修改,而是希望修改一次配置信息就可以同步给所有服务节点,Zookeeper就可以实现这个业务,十分简单,可以将服务的配置信息写入ZooKeeper上的一个Znode中,让每个集群节点的服务器都去监听这个Znode,一旦数据被修改,ZooKeeper将通知各个服务器,达到同步的效果。还可以做统一的集群管理、服务器的动态上下线、以及软负载均衡的效果。

在实践Zookeeper前还需要注意的内容:

  • Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
  • 集群正常运行的前提条件是集群节点大于半数,因此集群节点数最好采用奇数个。
  • 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
  • 更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
  • 数据更新原子性,一次数据更新要么成功,要么失败。
  • 实时性,在一定时间范围内,Client能读到最新数据。

3.简单部署Zookeeper集群

官网地址:https://zookeeper.apache.org/,本文采用**VMware**创建3台虚拟机构建集群,**XShell**工具连接虚拟机进行操作:

首先为机子安装jdk,采用yum源安装,注意设置yum,静等安装成功出现“Complete”即可:

[root@localhost ~]# yum install -y java-1.8.0-openjdk.x86_64