Zookeeper和Znode的特点

本文介绍了Zookeeper中的Znode类型,包括临时、持久和序列节点,以及它们在监控和数据一致性中的作用。特别提到序列节点在解决NameNode脑裂问题中的关键隔离机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zookeeper是一个树状结构,维护一个小型的数据节点Znode。

数据以keyvalue的方式存在,目录是数据的key。

所有的数据访问都必须以绝对路径的方式显示。

Znode是层次结构,每个Znode都有一个唯一的路径标识

临时节点:创建临时节点,会话结束之后临时节点会被自动删除。

持久节点:节点会一直存在,直到显示删除。主要用于存储配置信息和状态信息等。

序列节点:节点在创建的时候可以设置一个单调递增的序列号,用于实现分布式队列等场景。

例子:

临时节点:

zookeeper启动之后会生成临时节点,持久节点和序列节点,临时节点的主要作用就是让zookeeper和备用的NameNode对主NameNode做一个监听,因为临时节点只在一次会话中有效,所以当主NameNode宕机之后临时节点也就跟着删除了,zookeeper和备用的NameNode监听到主NameNode宕机之后会进行重新选主。

序列节点:

当主NameNode因为网络波动造成临时宕机,备用节点经过选举之后成为主节点,这种情况下就容易产生脑裂问题。如何解决脑裂问题?隔离。如何隔离?这里就要用到序列节点,序列节点内维护了一个单调递增的序列号,假如备用节点在没有成为主之前他的序列号为1,当他成为主之后序列号户单挑递增1,也就是说他成为主之后他的序列号变成了2,那QJM,DataNode全部更新为2,当原来的主恢复之后,他的序列号还是为1,这就形成了隔离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据界一个小小的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值