Zookeeper集群

Posted bpdmutou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper集群相关的知识,希望对你有一定的参考价值。

1.概念理解

Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。

Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理关键数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,类似于Master/Slave管理模式。

 

2.功能

提供的服务包括:分布式消息同步和协调机制、服务器节点动态上下线、统一配置管理、负载均衡、集群管理等。

技术分享图片

 

3.本地安装部署

(1)下载tar包

官网地址:https://zookeeper.apache.org/releases.html

技术分享图片

(2)解压tar包

 解压命令:tar -zxvf zookeeper-3.3.6.tar.gz

  (3)本地搭建集群

搭建方式分为两种:第一种是在同一台服务器搭建伪集群,第二种是在多台服务器搭建集群

第一种伪集群:

步骤(接着上面的步骤):

1.将解压后的zookeeper文件夹进行复制两份,加上解压的一共三份,分别放到不同的文件目录下。

我这里举例用的三个目录分别是zkserver1,zkserver2,zkserver3。

技术分享图片

2.修改每个目录下zookeeper文件下的配置文件,相对路径是zkServer1/zookeeper/conf

首先将zoo_sample.cfg重命名为zoo.cfg

然后修改zoo.cfg

技术分享图片

server.1=192.168.1.100:2888:3888详解

server.1中server是固定写法,1是服务器别名,后面需要创建一个myid文件然后配置该别名,三个服务器,别名都不一样,分别为1,2,3

192.168.1.100是ip

2888/2889/2887是服务器与集群中的Leader服务器交换信息的端口

3888/3889/3887是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口

创建myid,根据zoo.cfg配置文件中的dataDir,在该路径下创建一个myid文件,命令 touch myid,三个服务器,有三个不同的目录,所以需要创建三个myid文件

在myid文件中配置服务器别名,注意,只需要别名就行

技术分享图片

 

 三个文件配置完毕后,开始启动三个zookeeper

启动命令:bin/zkServer.sh start,分别在三个zookeeper目录下执行该命令

使用jps命令查看进程,会有3个QuorumPeerMain的进程,集群启动成功

技术分享图片

 

第二种集群方式

跟第一种不同的是zoo.cfg文件的配置

技术分享图片

区别就是IP不一样,dataDir和端口可以一样。

启动方式一样

 

以上是关于Zookeeper集群的主要内容,如果未能解决你的问题,请参考以下文章

zookeeper集群+kafka集群 部署

Zookeeper集群

Zookeeper集群

Zookeeper集群

Zookeeper集群

Zookeeper集群+Kafka集群+ELK