一, Zookeeper入门
1.1 概述
- Zookeeper 是一个开源的,分布式的, 为分布式框架提供协调服务的Apache项目.
- 它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。
- 因为使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等),而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性,ZooKeeper作为一个能够通用解决这些问题的中间件就应运而生了。
[Zookeeper工作机制]
Zookeeper=文件系统+通知机制 Zookeeper从设计模式来理解: 是一个基于观察者模式设计的分布式服务管理框架, 它负责存储和管理大家都关心的数据 , 然后接受观察者的注册 , 一旦这些数据的状态发生变化, Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应 .
1.2 Zookeeper特点
一个领导,多个跟随者 : Zookeeper是由一个领导者(Leader), 多个跟随者(Follower)组成的集群.奇数台服务器 : 集群中只要有半数以上节点存活, Zookeeper就能正常服务, 所以Zookpeer适合安装奇数台服务器. 为什么zookeeper集群的数目,一般为奇数个 ?全局数据一致 : 每个Server保存一份相同的数据副本, Client无论连接到哪个Server上, 数据都是一致的.更新请求顺序执行 : 来自同一个Client的更新请求按其发送顺序一次执行.数据更新原子性 : 一个数据更新要么成功, 要么失败.实时性 : 在一定时间范围内, Client能读到最新数据.
1.3 数据结构
- ZooKeeper 数据模型的结构与 Unix 文件系统很类似,
整体上可以看作是一棵树 ,每个节点称作一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个 ZNode 都可以通过其路径唯一标识。
1.4 应用场景
- 提供的服务包括:
统一命名服务 、统一配置管理 、统一集群管理 、服务器节点动态上下线 、软负载均衡 等。
[统一命名服务] [统一配置管理]
[统一集群管理]
[服务器动态上下线]
[软负载均衡]
二, Zookeeper的下载和本地安装
- 下载
- 在本地安装Zookeeper
(1). 安装前准备
- 主机内安装JDK
- 拷贝下载好的Zookeeper安装包到主机中.
- 解压到指定目录并改名
(2). 配置修改
-
将/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg; -
打开 zoo.cfg 文件,修改 dataDir 路径: -
在/opt/module/zookeeper-3.5.7/这个目录上创建 zkData 文件夹
(3). 操作Zookeeper
-
启动 Zookeeper -
查看进程是否启动 -
查看状态 -
启动客户端 -
退出客户端 -
停止 Zookeeper
2.2 配置参数解读
|