30天了解30种技术系列(19)------开源分布式协调系统Zookeeper
分布式系统是互联网系统的根基,但是只要谈到分布式系统,就会涉及到分布式系统的管理,本期老钱介绍一下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