概述
Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目
ZooKeeper字面意思:动物园管理员,把服务器比作是动物,它作为一个管理者的身份,监控着从它上面注册过的服务,客户端可以通过ZooKeeper来了解服务的运行情况。
ZooKeeper=文件系统+通知机制。
首先,服务启动后,去ZooKeeper上注册信息,告知ZooKeeper,我是一台服务器,我要把我的服务状态告知你。
与此同时,客户端也可以链接ZooKeeper,查看在ZooKeeper上注册过的服务器信息。
如果服务端有机器宕机或者重新上线,监听的客户端立刻就能感知到,做出相应的反应。
特点
集群中只要有半数以上结点存活,ZooKeeper集群就可以正常服务
数据结构
使用Client连接ZooKeeper后,就会发现,ZooKeeper里的结构和Linux的文件系统结构类似,也有根目录,根目录下有许多的分支,可以看做是一棵树,每个结点称作一个ZNode,每个ZNode可以存储1MB的数据,通过其路径作为唯一标识。
应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
统一命名服务
统一配置管理
统一集群管理
服务器节点动态上下线
软负载均衡