zookeeper技术栈

1、ZooKeeper和Redis一样,也是C/S结构(分成客户端和服务端),
它是一个数据库,文件存储系统,并且有监听通知机制(观察者模式)。
2、znode分为两种类型:
1、短暂/临时(Ephemeral):当客户端和服务端断开连接后,所创建的Znode(节点)会自动删除
2、持久(Persistent):当客户端和服务端断开连接后,所创建的Znode(节点)不会删除
3、zookeeper许多功能的实现就是:监听+znode去实现的。

zookeeper中的分布式锁的实现:
访问的时候会创建带顺序号的临时/短暂(EPHEMERAL_SEQUENTIAL)节点,比如,系统A创建了id_000000节点,系统B创建了id_000002节点,系统C创建了id_000001节点。(创建出临时带顺序号的节点)
接着,拿到/locks节点下的所有子节点(id_000000,id_000001,id_000002),判断自己创建的是不是最小的那个节点
• 如果是,则拿到锁。
○ 释放锁:执行完操作后,把创建的节点给删掉
• 如果不是,则监听比自己要小1的节点变化

zookeeper还可以去管理集群的状态:
除了能够感知节点的上下线变化,ZooKeeper还可以实现动态选举Master的功能。(如果集群是主从架构模式下)
原理也很简单,如果想要实现动态选举Master的功能,Znode节点的类型是带顺序号的临时节点(EPHEMERAL_SEQUENTIAL)就好了。
• Zookeeper会每次选举最小编号的作为Master,如果Master挂了,自然对应的Znode节点就会删除。然后让新的最小编号作为Master,这样就可以实现动态选举的功能了。

zookeeper的实现:统一配置管理、统一命名服务、分布式锁以及集群管理。

zookeeper的使用场景:服务注册与订阅、分布式通知、服务命名、数据订阅以及发布、分布式锁(临时节点)。

Create -e(临时节点) -s(创建顺序节点) /test laogong // 创建永久节点

临时顺序节点可以去解决羊群效应。

Zab(Zookeeper Atomic Broadcast)是为ZooKeeper设计的崩溃恢复原子广播协议,它保证zookeeper集群数据的一致性和命令的全局有序性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

皮皮虾骑着皮皮狗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值