【Linux】zookeeper集群

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010785685/article/details/52078817

一:概念

zookeeper是一个分布式的,开放源代码的分布式应用程序协调服务。而Apache HbaseApache Solr等的分布式集群都用到了zookeeperzookeeper相当于一个集群管理软件,SolrCloud就需要Solr基于Zookeepe部署,由zookeeper进行协调管理。

 

二:角色:

Leader:领导者,对于改变系统状态的更新操作,交由Leader进行提议投票,超过半数通过后返回结果给client,它不接受client请求。

Follower:跟随者,服务client请求,对于不改变系统一致性状态的读操作由follower的本地内存数据库直接给client返回结果。

Observer:观察者接受客户端连接,将写请求转发给leader节点。


三:原理:

Zookeeper的核心是原子广播,这个机制保证了各个server之间的同步。实现这个机制的协议是Zab协议。Zab协议的两种模式:恢复模式(选主)、广播模式(同步),当服务器启动或者领导者崩溃,Zab进入恢复模式。当领导者被选举出来,且大多数server完成了和leader的状态同步,恢复模式结束。

leader已经和多数follower进行状态同步后,他就可以开始广播消息了,进入广播状态。广播模式及其类似于分布式事务中的2pc,,leader提起一个决议,由followers进行投票,leader对投票结果进行计算决定是否通过该决议,通过则执行该事务,不通过则不执行。


四:准备环境:

安装jdk


五:搭建zookeeper集群:


1、集群配置

 zookeeper必须是集群才能保证高可用,zookeeper有选举和投票的机制。集群至少有3个节点,所以通常zookeeper2n+1servers组成,每个server都知道彼此的存在,只要有n+1server可用,整个系统保持可用。如下是一个搭建集群的demo,在一台虚拟机上创建三个zookeeper实例(伪分布式),当然,真正情况下各个节点应该在不同的服务器上。



2、搭建步骤:

1、将安装包下载到服务器上、解压、复制


3、配置

zookeeper01文件夹中创建data目录,并且在data目录中创建myid文件,内容为1,zk02为2,zk03为3


进入conf文件,把zoo_sampe.cfg改名为zoo.cfg/或者复制一份,改名为zoo.cfg

修改zoo.cfg:

dataDir=/usr/local/solr-cloud/zookeeper01/data/
clientPort=2181

dataDir为myid的路径,这里分别设置三个zookeeper各自的路径

clientPort为端口号:只要不和其他端口号冲突即可,分别为2181、2182、2183


zoo.cfg文件中添加如下内容:

server.1=192.168.246.44:2881:3881
server.2=192.168.246.44:2882:3882
server.3=192.168.246.44:2883:3883

剩下的两个同理。。。


4、启动zookeeper




5、查看服务状态




猜你喜欢

转载自blog.csdn.net/u010785685/article/details/52078817