zookeeper(分布式协调框架) ——01入门
zookeeper(分布式协调框架)简介与集群搭建
ZooKeeper 的由来:
Zookeeper最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。所以,雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。
关于“ZooKeeper”这个项目的名字,其实也有一段趣闻。在立项初期,考虑到之前内部很多项目都是使用动物的名字来命名的(例如著名的Pig项目),雅虎的工程师希望给这个项目也取一个动物的名字。时任研究院的首席科学家RaghuRamakrishnan(罗摩克里希纳)开玩笑地说:“在这样下去,我们这儿就变成动物园了!”此话一出,大家纷纷表示就叫动物园管理员吧一一一因为各个以动物命名的分布式组件放在一起,雅虎的整个分布式系统看上去就像一个大型的动物园了,而Zookeeper正好要用来进行分布式环境的协调一一于是,Zookeeper的名字也就由此诞生了。
简介:
https://zookeeper.apache.org/
ApacheZooKeeper是一项努力开发和维护开源服务器的工作,它能够实现高度可靠的分布式协调。
ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步以及提供组服务。
应用场景
概述:提供了文件系统和通知机制
配置信息的集中式管理(信息发布和订阅)
应用在启动的时候会主动来获取一次配置,同时,在节点上注册一个Watcher,这样一来,以后每次 配置有更新的时候,都会实时通知到订阅的客户端,从来达到获取最新配置信息的目的。
命名服务(Naming Service)
类似与java中的JNDI. 在分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源或服务的地址,提供者等信息。
集群管理
节点的增加和删除以及状态的监控。实例:所有机器约定在父目录gms下创建临时目录节点,然后监听父目录节点的子节点变化消息。机子添加或者删除,临时节点会动态的添加或者删除。