Zookeeper初学篇

来源:互联网 发布:淘宝店铺模板购买 编辑:程序博客网 时间:2024/05/29 04:48

【是什么】

       ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。以上官方说法,只知道ZooKeeper是一个分布式服务框架,好了,接着往下看。

【有什么】

一、类似文件系统的数据模型结构(在网上看到的图,感觉很合适就直接拿来借用啦)


如上图的目录项,例如NameServices和Configuration之流,都成为znode,每个znode都存储了数据,我们可以自由的增减znode,当然也可以增减znode下的znode。

znode的类型,有四种:

①Persistent(持久化目录节点):客户端与Zookeeper断开连接后,该节点依旧存在

②Persistent_sequential(持久化顺序编号目录节点):客户端与Zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号。

③Ephemeral(临时目录节点):客户端与Zookeeper断开连接后,该节点被删除。

④Ephemeral_Sequential(临时顺序编号目录节点):客户端与Zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。

二、通知机制

客户端注册监听它所关心的目录节点,简单说,当该目录节点发生变化时,Zookeeper就会通知客户端。

【应该场景】

1.配置管理

如果程序分散部署在多台机器上,对程序的配置或者对配置的改变就会变得很麻烦。如果将这些配置都放到Zookeeper上去,保存在Zookeeper相应的目录节点中,然后利用Zookeeper的监听功能,当配置信息发生变化时,相应的客户端就会收到Zookeeper的通知,然后从Zookeeper中获取最新的配置信息即可。

2.集群管理

集群管理,主要应用了Zookeeper的监听,监听是否有机器退出和加入。

所有机器都在父目录下创建临时目录节点。剩下的就是对父目录节点的监听啦。一旦有机器退出,该机器就与Zookeeper的连接断开,那么,该节点所创建的临时目录节点被删除,父目录下所有的机器都收到通知;新机器加入类似。




1 0
原创粉丝点击