??
? ? ?分布式系统是互联网系统的根基,但是只要谈到分布式系统,就会涉及到分布式系统的管理,本期老钱介绍一下Zookeeper。
?
? ? Zookeeper目前是Hadoop 生态圈的热门项目,是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等.
?
? ?目前使用了Zookeeper的项目有Hadoop,HBase,Flume,Yarn等。主要用来做机器的管理及分布式锁服务,HA等。
? ?
? ?系统模型如下:
? ?
? 每一个Server的数据都是一样的,所以对于读操作,客户端随机链接一个Server 即可,如果是写操作,则需要对接到Leader,然后由Leader 负责转发与更新的操作。?
?
? 具体角色如下:
??
?
? ?Zookeeper 在选举中,会采用Fast Paxos算法,作为基础。一般在生产环境咱们需要部署奇数个节点,3个起。
? ?
? ?Zookeeper的数据结构:
??
?
?
? Zookeeper通过Node 这样的树形结构管理数据,Node 分为持久态及瞬时态(创建的Client如果不在与集群通信那么该节点会消失,并触发相关的事件)。
?
? Zookeeper 的服务管理应用示意图:
??
?
? Zookeeper的核心---watch机制:在创建节点时,需要添加一个Watcher的代码,用来做节点状态改变的监控。
?
? 对于Zookeeper详细的介绍及使用,大家可以找一下相关的资料及视频教程。这个东西目前已经算是分布式管理的标志性项目。
?
???更多精彩请关注微信 : 图灵搜索
? ?请大家使用中国第一个为程序员打造的搜索引擎:图灵搜索,https://www.tulingss.com?
?
??
?
30天了解30种技术系列(19)------开源分布式协调系统Zookeeper
原文:http://tulingss.iteye.com/blog/2237926