Zookeeper分布式集群-创新互联

一、简介

在名山等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、成都网站设计 网站设计制作按需定制,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销,外贸网站建设,名山网站建设费用合理。

   Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、数据库切换等服务。它不适合用来存储大量信息,可以用来存储一些配置、发布与订阅等少量信息。Hadoop、Storm、消息中间件、RPC服务框架、分布式数据库同步系统,这些都是Zookeeper的应用场景。

  Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务。

1、典型应⽤用场景

1)分布式通知/协调

⽤用于分布式系统的任务分发与任务执⾏行结果反馈

2) 集群管理

– 可以监控节点的存活状态

3)Master选举

Master/slave结构的系统中,避免单点故障,需要多个master,其中

只有⼀一个active master,ZooKeeper帮助选择active master

4) 分布式锁

– 独占:某⼀一时刻只有⼀一个client能够获得

– 控制时序:多个客户端的某些过程按照顺序执⾏行

5) 分布式队列

https://blog.csdn.net/king866/article/details/53992653/

2、架构

Zookeeper分布式集群Zookeeper分布式集群

2.1、节点

– 2N+1个server组成,N+1个节点可⽤用时,整个系统保持可⽤用

2.2、server⾓角⾊色类型

– Server:存放数据(in-memory)

– Leader:不接受client的请求,负责进⾏行投票的发起和决议,最终更新状态 – Follower:接收客户请求并返回客户结果,参与Leader发起的投票

3、ObServer节点

问题

当client变多,ZK集群变⼤大时,节点都为follower时,更新成 本较⼤大

• 解决方案

ObServer节点:和client交互,存有数据的副本,不参与投票

4、角色

Zookeeper分布式集群Zookeeper分布式集群

5、ZooKeeper承诺

5.1、顺序性

client的update请求都会根据他发出的顺序被顺序的处理

5.2、原子性

一个update操作要么成功要么失败,没有其他可能的结果

5.3、强一致性

client无论连接到那个server,展⽰示给它的都是同⼀一个视图

5.4、 可靠性

update一旦成功,就被持久化了,除⾮非另⼀一个update请求更 新了当前值

5.5、实时性

对于每⼀一个client,它的系统视图都是最新的

二、准备工作

1、系统环境

主机名

系统

服务版本

IP

master

CentOS7.4

3.4.12

192.168.56.129

slave1

CentOS7.4

3.4.12

192.168.56.130

slave2

CentOS7.4

3.4.12

192.168.56.131

2、暂时关闭防火墙和selinux

3、软件下载

下载地址:http://mirrors.hust.edu.cn/apache/zookeeper/

Zookeeper分布式集群

4、Java环境

Zookeeper分布式集群Zookeeper分布式集群

三、服务搭建

1、解压三个节点的文件

[root@master ~]# cd /home/

[root@master home]# tar -zxvf zookeeper-3.4.12.tar.gz

[root@master home]# ln -s zookeeper-3.4.12 zookeeper

备注:三个节点相同操作

2、在conf目录下创建zoo.cfg文件,三个节点配置相同,如下

[root@master ~]# cd /home/zookeeper/conf/

[root@master conf]# cp zoo_sample.cfg zoo.cfg

[root@master conf]# vim zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/var/lib/zookeeper

clientPort=2181

maxClientCnxns=50

server.1=192.168.56.129:2888:3888

server.2=192.168.56.130:2888:3888

server.3=192.168.56.131:2888:3888

3、创建文件/var/lib/zookeeper/myid,3个节点的 内容分别为1、2、3

[root@master conf]# mkdir -p /var/lib/zookeeper

[root@master conf]# cd /var/lib/zookeeper/

[root@master zookeeper]# vim myid

Zookeeper分布式集群Zookeeper分布式集群

4、启动三个节点

[root@master zookeeper]# bin/zkServer.sh start

Zookeeper分布式集群Zookeeper分布式集群

[root@master zookeeper]# jps

Zookeeper分布式集群Zookeeper分布式集群

[root@master zookeeper]# bin/zkServer.sh status

Zookeeper分布式集群Zookeeper分布式集群

5、测试

5.1、在zookeeper中任意一个节点,执行指令zkCli.sh

[root@master zookeeper]# ./bin/zkCli.sh

Zookeeper分布式集群Zookeeper分布式集群

5.2、输入:help   #帮助信息

Zookeeper分布式集群Zookeeper分布式集群

ls /  查找根目录

create /test abc  创建节点并赋值

get /test  获取指定节点的值

set /test cb 设置已存在节点的值

rmr /test 递归删除节点

delete /test/test01 删除不存在子节点的节点

5.3、相关操作命令

新建操作

Zookeeper分布式集群Zookeeper分布式集群

删除操作

Zookeeper分布式集群Zookeeper分布式集群

5.4、查看工具

在Eclipse中查看Zookeeper集群节点

也可以使用ZooInspector查看

这里使用ZooInspector工具进行查看

下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip

解压,进入目录ZooInspector\build,双击运行zookeeper-dev-ZooInspector.jar;

备注:前提是Windows环境安装了Java

Zookeeper分布式集群Zookeeper分布式集群

4.5、点击左上角连接按钮,输入zk服务地址:ip:2181

Zookeeper分布式集群Zookeeper分布式集群

点击OK,即可查看ZK节点信息

Zookeeper分布式集群Zookeeper分布式集群

6、异常

  6.1、CONNECTION_LOSS(连接丢失)

    – eg:连接的server down掉

 6.2、 SESSION_EXPIRED(会话失效)

  – 由ZooKeeper集群管理,⾮非client管理

  – ZooKeeper清除和该session有关的信息 – 正常运⾏行的ZK不会出现这种情况

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:Zookeeper分布式集群-创新互联
文章路径:http://hbruida.cn/article/dhoshp.html