ZooKeeper: Wait-free coordination for Internet-scale systems论文理解

ZooKeeper介绍

Zookeeper 是用来协调分布式应用的服务框架,它是一个通过冗余容灾的服务器集群,提供 API 给 client ,用以实现一些 原语( 如配置管理、成员管理、领导人选举、分布式锁等 ),在这些原语的基础上可以实现一些分布式应用程序( 如 GFS 、MapReduce 、VM-FT 的 test-and-set server 以及雅虎的 Fetching Service 、Katta 、YMB 等 )。

Zookeeper本身可以作为大型分布式系统的基础架构,为其提供领导人选举、server状态确认等功能

与ZooKeeper定位相似的还有最近比较有名的etcd(掘金

ZooKeeper需要注意的地方

1、数据结构仿照linux文件系统设计,类似于树的结构,便于加锁检查

2、大型分布式系统通常读写操作比例能达到10-100,因此ZooKeeper为了提升读操作的吞吐量进行了大量的改变

例如:

保持弱一致性,即读到的内容不一定是最新的内容。ZooKeeper的server直接读取Replica的数据,提升了执行的效率。

实际上,随着server数量的增加,ZooKeeper读操作越来越快,写操作越来越慢(写需要进行主从复制等,很花费时间)。

当然,对于写操作和读操作,ZooKeeper严格保持了FIFO的要求,对执行顺序有着较强的要求。

可以参考下面的示意图:

为了保证顺序性,ZooKeeper引入了id来保证顺序。通过zxid保证读数据即使是在不同的replica上读也不会违背顺序性。

3、ZooKeeper虽然不支持锁机制,但本身可以实现分布式锁,验证了其介绍,强的原语可以用于实现弱的原语。

具体的构造方法可以参考下面一节的参考资料

参考资料

《 ZooKeeper : Wait-free coordination for Internet-scale systems 》论文研读 - BrianLeeLXT - 博客园

掘金

http://nil.csail.mit.edu/6.824/2020/notes/l-zookeeper.txt

CAP和BASE理论讲解:掘金

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值