概述

Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目

ZooKeeper字面意思:动物园管理员,把服务器比作是动物,它作为一个管理者的身份,监控着从它上面注册过的服务,客户端可以通过ZooKeeper来了解服务的运行情况。

 

Zookeeper入门_客户端

 

ZooKeeper=文件系统+通知机制。
首先,服务启动后,去ZooKeeper上注册信息,告知ZooKeeper,我是一台服务器,我要把我的服务状态告知你。
与此同时,客户端也可以链接ZooKeeper,查看在ZooKeeper上注册过的服务器信息。
如果服务端有机器宕机或者重新上线,监听的客户端立刻就能感知到,做出相应的反应。

 

特点

Zookeeper入门_java-zookeeper_02

 

集群中只要有半数以上结点存活,ZooKeeper集群就可以正常服务

数据结构 

 使用Client连接ZooKeeper后,就会发现,ZooKeeper里的结构和Linux的文件系统结构类似,也有根目录,根目录下有许多的分支,可以看做是一棵树,每个结点称作一个ZNode,每个ZNode可以存储1MB的数据,通过其路径作为唯一标识。

 

Zookeeper入门_客户端_03

应用场景 

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。 

 统一命名服务

Zookeeper入门_客户端_04

统一配置管理

Zookeeper入门_java-zookeeper_05

 

统一集群管理

Zookeeper入门_java-zookeeper_06

 

服务器节点动态上下线

Zookeeper入门_java-zookeeper_07

 

 

软负载均衡 

 

Zookeeper入门_zookeeper_08