ZooKeeper知识
文章平均质量分 95
知识改变世界,创新改变未来!
程序员-杨胡广
作业难题、毕设辅导、就业简历优化加微:BitPlanet。喜欢读三十六计、孙子兵法、鬼谷子等谋略书籍,爱折腾。目前任职上海某厂高级Java开发,多年java开发经验,前后端全栈开发,精通各类业务的服务架构。目前正在研究Python AI模型,神经网络,感兴趣一起交流。
展开
-
ZooKeeper面试必备:ZooKeeper4种数据节点类型、了解事务ID
ZooKeeper一共有四种节点类型,但从整体来看主要是持久节点类型、临时节点类型这两种,另外两种类型只是在以上两种节点类型基础上增加了顺序的特性。,是不能在临时节点下面创建任何子节点的。原因大概是临时节点子节点没有存在的意义,创建子节点的场景大多是基于持久节点的场景,这种设计也可以防止对临时节点的误用。ZooKeeper数据节点的版本概念和CAS操作的版本概念是一样的,同样是在多线程环境下,通过乐观锁这种无锁操作来保证线程安全性。对数据节点的每次更新,都会对比数据节点的version是否是预期值,只有。原创 2024-09-13 19:18:49 · 827 阅读 · 11 评论 -
掌握ZooKeeper的二阶段提交及其优缺点
新的Leader服务器上线后,新的Leader服务器拥有集群里最大的事务偏移量,Leader服务器会和Follower服务器的ZXID进行比对,从而让Follower服务器回退被跳过的事务Proposal。崩溃模式总的来说就做了两个事情,我们记住这两点方便理解:一个是确保提交已经被Leader提交的事务Proposal,另一个是丢弃已经被跳过的事务Proposal。(1)在消息广播的第二阶段,如果有部分Follower服务器没有收到Leader服务器广播的事务提交消息,这就会出现数据不一致的情况了。原创 2024-09-12 11:31:50 · 1003 阅读 · 19 评论 -
掌握ZooKeeper的业务使用场景,ZooKeeper如何实现分布式锁
如果事务T1对数据对象O1加上了排他锁,那么在整个加锁期间,只允许事务T1对O1进行读取和更新操作,其他任何事务都不能再对这个数据对象进行任何类型的操作——直到T1释放了排他锁。如果事务T1对数据对象O1加上了共享锁,那么当前事务只能对O1进行读取操作,其他事务也只能对这个数据对象加共享锁——直到该数据对象上的所有共享锁都被释放。大家有没发现,上面分布式锁的实现方式是排他锁,我们也可以使用共享锁的实现方式,来看看两者的区别。另外共享锁的释放锁和排他锁都是一样的,只需要删除所创建的子节点就可以。原创 2024-09-12 11:30:10 · 620 阅读 · 3 评论