目录
一、ZooKeeper简介
二、ZooKeeper的核心特性
1、顺序一致性
2、原子性
3、单一视图
4、可靠性
5、实时性
三、ZooKeeper的基本概念
四、ZooKeeper的基本应用场景
1.配置中心
2.统一命名服务
3.分布式锁
4.分布式队列
五、ZooKeeper的入门安装与配置
1.下载与解压缩
2.配置环境变量
3.创建配置文件
4.启动ZooKeeper
ZooKeeper基础知识与入门
一、ZooKeeper简介
ZooKeeper是一个开源的分布式协调服务,目前由Apache进行维护。ZooKeeper是Google的Chubby一个开源的实现,也是Hadoop和Hbase的重要组件。其主要功能是为分布式应用提供一致性服务,如配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
二、ZooKeeper的核心特性
1、顺序一致性
从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到ZooKeeper中。
2、原子性
所有事务请求的处理结果在整个集群中所有机器上都是一致的,不存在部分机器应用了该事务,而另一部分没有应用的情况。
3、单一视图
所有客户端看到的服务端数据模型都是一致的。
4、可靠性
一旦服务端成功应用了一个事务,则其引起的改变会一直保留,直到被另外一个事务所更改。
5、实时性
一旦一个事务被成功应用后,ZooKeeper可以保证客户端立即可以读取到这个事务变更后的最新状态的数据。
三、ZooKeeper的基本概念
在ZooKeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。Znode有两种类型:临时节点(Ephemeral)和持久节点(Persistent)。临时节点在创建该节点的客户端会话结束时会被自动删除,而持久节点则不会。
ZooKeeper还提供了Watcher机制,用于在znode节点上注册一个Watcher监听,当这个znode节点发生变化(数据变更、子节点增减)时,ZooKeeper服务会通知客户端。
四、ZooKeeper的基本应用场景
1.配置中心
ZooKeeper可以用来存储和管理配置信息,例如集群中的机器配置、服务地址配置等。通过ZooKeeper,可以将配置信息统一管理,同时实现动态加载和更新。
2.统一命名服务
ZooKeeper可以用来实现命名服务,例如将集群中的机器名称和IP地址进行映射,或者将服务的唯一标识和实际地址进行映射。这样,客户端可以通过名称或标识来访问服务,而不需要知道服务的实际地址。
3.分布式锁
ZooKeeper可以用来实现分布式锁,通过创建一个特殊的节点,各个节点可以竞争同一个锁,从而保证分布式系统中的一致性。
4.分布式队列
ZooKeeper可以用来实现分布式队列,通过创建一个特殊的节点,各个节点可以加入或离开队列,同时队列中的节点可以按照一定的顺序进行排序。
五、ZooKeeper的入门安装与配置
1.下载与解压缩
从Apache官网下载ZooKeeper的发行包,并解压缩到指定目录。
2.配置环境变量
将ZooKeeper的bin目录添加到系统的PATH环境变量中,以便在全局范围内使用ZooKeeper的命令。
3.创建配置文件
在ZooKeeper的conf目录下,创建zoo.cfg文件,并配置相关的参数,如数据目录、日志目录、客户端连接端口等。
4.启动ZooKeeper
使用zkServer.sh start命令启动ZooKeeper服务。如果一切正常,你将看到ZooKeeper的启动日志,并可以通过jps命令查看到ZooKeeper的进程。