- 一个开源的分布式的,为分布式应用提供协调服务的Apache项目
- 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务
- 设计非常易于编程,它使用的是类似于文件系统那样的树形数据结构
- 目的就是将分布式服务不在需要由于协作冲突而另外实现协作服务
- 服务器节点一般为基数
典型的应用场景
zookeeper从设计模式的角度来看,是一个基于观察者模式设计的分布式服务管理框架,负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,zk就负责通知已经在zk上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式
场景:
- 统一命名服务
- 配置管理
- 集群管理
- 共享锁/同步锁
安装
- 伪分布式
- 修改配置文件
- 启动服务器端 bin/zkServer.sh start
- zk客户端常见命令
- 分布式(我的安装目录: /opt/app/zookeeper-3.4.10)
- 配置文件
- 在/opt/app/zookeeper-3.4.10/data/zkData目录下添加一个名为myid的文件
- touch myid
- vi myid 添加对应的服务号
- 分发
- scp -r zookeeper-3.4.10/ root@hdp-node-02:/opt/app
- 重配置myid文件
- 启动 (每个注册机器都要启动)
- bin/zkServer.sh start
- 出现leader和follower就成功
- bin/zkServer.sh start