Zookeeper简介及选举机制

1.概述

Zookeeper是一个开源的,分布式的,为分布式框架(如下图中的Hadoop和Hive)提供协调服务的Apache项目。

工作机制:基于观察者设计模式的分布式服务管理框架,负责存储和管理数据,接受观察者注册,一旦这些数据状态发生变化,Zookeeper就会发送通知给这些已注册的观察者。简而言之,Zookeeper = 文件系统+通知机制

特点:

1)由1个Leader和多个Follower组成的集群

2)有一半以上节点存活,Zookeeper集群就能正常服务,所以Zookeeper适合安装奇数台服务器(比如5台和6台服务器,都是挂3台之后Zookeeper集群不能服务,6台服务器相比于5台服务器的可靠性并没有提高)

3)全局数据一致,每个服务器都有一份相同的数据副本

4)来自同一个客户端的请求顺序执行

5)数据更新具有原子性,要么成功,要么失败

2.数据结构

Zookeeper的数据结构和Linux类似,都是树形结构(类似的还有HDFS),每一个节点称为一个ZNode,默认存储1MB的数据,所以不能存储海量数据,只能存储配置信息这种小数据。

3.配置

将conf目录下的zoo_sample.cfg修改为zoo.cfg,其中内容如下

其中dataDir的值需要修改,不要设为放在Linux临时目录下。tickTime表示心跳时间,客户端与服务端或者服务端与服务端的通信心跳时间。initLimit表示Leader和Follower初始化第一次建立连接的最大通信心跳数。syncLimit表示建立第一次连接连接之后的最大通信心跳数。clientPort是客户端端口号。

启动服务端命令:bin/zkServer.sh start,可以通过jps -l看到zookeeper的进程:

启动客户端命令:bin/zkCli.sh

查看zk服务端状态命令:bin/zkServer.sh status,下图显示的是standalone模式

停止服务端命令:bin/zkServer.sh stop

4.第一次选举机制

其中的myid是在配置文件里,相当于这台服务器的身份标识。第一次选举机制可以简单理解为依次投给myid最大的服务器,直到集群里半数以上服务器启动完。

5.非第一次启动选举机制

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值