其他分享
首页 > 其他分享> > zookeeper 介绍与环境搭建

zookeeper 介绍与环境搭建

作者:互联网

1、什么是 zookeeper?

   zookeeper 是一个开放源码的分布式应用程序协调服务,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。

   zookeeper 不适合存储大量数据,通常存储一些配置信息,动态的监听服务器的变更并且反馈给服务器。

   zookeeper 集群最少需要 3 个节点。官方推荐奇数个,偶数会影响选举的结果。

2、zookeeper 的特点

3、zookeeper 的设计目标

4、zookeeper 的工作原理

     在 zookeeper 的集群中,各个节点共有 3 种角色、4 种状态

        角色:Leader、Follower、Observer。Follower 和 Observer 又统称为 Learner

         Leader:负责服务器 writer 类型请求。

         Follower:负责客户端的 reader 类型请求。参与 leader 选举。

         Observer:特殊的 Follower。可以接受客户端的 reader 请求,但不参与选举。

       zookeeper 的核心是原子广播,这个机制保证了各个 server 之间的同步。实现这个机制的协议叫做 ZAB 协议(Zookeeper Atomic Broadcast p'rotocol)。

       ZAB 协议有两种模式:恢复模式和广播模式。当服务启动或 leader 崩溃后就进入恢复模式。当 leader 被选举出来,且大多数 server 完成了和 leader 的状态同步后,恢复模式就结束了。状态同步保证了 leader 和 server 具有相同的系统状态。

       每个 server 在工作过程中有 4 种工作状态:

         LOOKING:未选出 leader,正在搜寻

         LEADING:当前 server 为选出的 Leader

         FOLLOWING:leader 已被选出,当前 server 与之同步

         OBSERVING:与 Follwer 基本一致,但不参加选举和投票,仅接受选举和投票的结果。

 5、zookeeper 的集群节点

 6、zookeeper 的集群安装与配置

     1)需要先安装好 jdk,这里就不写了。

     2)下载 zookeeper  http://zookeeper.apache.org/

     3)解压并复制

tar -xvf  zookeeper-3.4.10.tar -C /usr/local/bin/zk  #解压到 /usr/local/bin/zk 目录下
cd /usr/local/bin/zk
mv zookeeper-3.4.10 zk1  #重命名
cp -p zk1/ zk2  #复制
cp -p zk1/ zk3  #复制

     4)修改配置文件

cd zk1/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 修改 dataDir 为 zk1 下 data 的目录
dataDir=/usr/local/bin/zk/zk1/data
# 修改 clientPort 为 2181
clientPort=2181
# 并写入如下内容:
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2899:3899
server.3=127.0.0.1:2877:3877

  按照以上步骤,修改 zk2、zk3 的配置文件。

   配置参数说明:

tickTime:zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔。单位是毫秒。

initLimit: zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数。(这里的客户端是指 leader 的 follower 服务器)
如果 initLimit 设置为 10,当超过 10 个心跳的时间长度后,如果 zookeeper 服务器没收到客户端返回的信息,那么连接失败。

syncLimit:标识 leader 与 follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度。syncLimit 为 5,那么最长是 5*tickTime

dataDir:保存数据的目录,默认情况下日志文件也保存在这个目录里。

clientPort:zookeeper 服务端口号

server.A = B:C:D : A 是一个数字,表示第几个 zookeeper 服务;B 是服务 IP 地址,C 是端口号,用来做数据同步,进行集群间的信息交换; D 也是一个端口号,用来做选举,主要是在 leader 挂掉后专门用来做选举 leader 的端口。

 5)创建 myid 文件

   需要在zk1、zk2、zk3 的 dataDir 目录下创建 myid 文件,并在文件中写入 server.A = B:C:D 中的 A 

echo 1 > /usr/local/bin/zk/zk1/data/myid
echo 2 > /usr/local/bin/zk/zk2/data/myid
echo 3 > /usr/local/bin/zk/zk3/data/myid

  配置完成。

 6)启动各个节点

cd /usr/local/bin/zk

zk1/bin/zkServer.sh start
zk2/bin/zkServer.sh start
zk3/bin/zkServer.sh start

 7)查看各个节点的状态

cd /usr/local/bin/zk

zk1/bin/zkServer.sh status
zk2/bin/zkServer.sh status
zk3/bin/zkServer.sh status

8) 集群连接

  

 

标签:bin,zookeeper,介绍,leader,客户端,local,zk1,搭建
来源: https://www.cnblogs.com/mayytest1202/p/10891098.html