Zookeeper几个概念解读

zookeeper

zookeeper是Hadoop和Hbase的重要组件。主要用于解决分布式集群中应用系统的一致性问题。

一、zookeeper的特点

1.也是一个分布式集群,一个领导者leader 。 多个跟随者 follower
2.集群只要又半数以上的节点存活,zookeeper集群就能正常服务
3.全局数据的一致性,每个server保存一份相同的数据副本,client无论到哪个server,数据都是一致的
4.更新请求按照顺序进行,来自同一个client的更新请求按其发送顺序依次执行
5.数据更新的原子性,一次数据的更新要么成功要么失败
6.数据的实时性:在一定时间范围内client能读到最新数据。

二、zookeeper的工作原理

2.1选举制度

- 1. 基于节点在半数以上才能正常服务的要求,Zookeeper适合装在奇数台机器。
- 2. Zookeeper没有在配置文件中指定leader和follower,而是使用算法(Paxos)在内部通过选举机制
	来选择一个节点为leader,其他节点为follower。

/*选举制度中的四个概念*/
- serverid:服务器id
比如有三台服务器,编号分别为123。编号越大在选择算法中的权重越大
- zxid:数据id
服务器中存放的最大数据ID。值越大说明数据越新,在选举算法中的权重越大
- Epoch:逻辑时钟
也可以称之为每个服务器参加投票的次数。同一轮投票过程中的逻辑次数
优先级:Epoch > zxid >serverid

- Server状态:选举状态
• LOOKING:竞选状态
• FOLLOWING:随从状态,同步leader状态,参与选票
• OBSERVING:观察状态,同步leader状态,不参与选票
• LEADER:领导者状态

2.2 zookeeper写数据流程

1. Client向Zookeeper的server1上写数据,发送一个写请求
2. 如果server1不是leader,那么server1会把请求进一步转发给leader。
3. 这个leader会将写请求广播给所有server。
4. 各个Server写成功后就会通知leader。
5. 当leader收到半数以上的server写成功的通知,就说明数据写成功了。写成功后,leader会告诉server1数据写成功了。
6. server1会进一步通知Client数据写成功了。这时就认为整个写操作成功。

三、zookeeper的数据模型

zookeeper 的数据模型采用的与Unix文件系统封类似的层次化属性结构。可以理解为具有高可用特征的文件系统

/*
	这个文件系统中没有文件和目录。而是同意采用“节点Node”概念,称之为znode。
	znode既可以作为保存数据的容器,也可以作为保存其他zonde的容器,所有的zonde构成了一个层次化命名空间。
	- 类unix的文件树形层的一个组织结构
	- 只有一个根节点
	- 节点称之为znode
	- 每一个znode 都可以存储数据,最大1M。相当于文件存储系统的文件
	- 每一个znode 都和一存储子znode 的名称,相当于文件存储系统的目录
*/

四、zookeeper的应用场景

-面试时至少说出四个

	- 集群管理节点的管理 HA
	- 服务节点的动态上下线感知
	- 分布式队列
	- 分布式锁
	
	/*课后百度学习补充*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值