本文主要是介绍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理论讲解:掘金
这篇关于ZooKeeper: Wait-free coordination for Internet-scale systems论文理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!