带你认识 zookeeper
zookeeper
一、 概述
1.1 定义
zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。
分布式: 多台服务器去处理一件事情
1.2 zookeeper的工作机制
1.3 zookeeper的特点
- zookeeper一个领导者(leader),多个跟随者(follower)组成的集群
- 集群中只有半数以上节点存活,zookeeper集群就能正常服务
- 全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的。
- 更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行。
- 数据更新原子性,一次数据更新要么成功,要么失败
- 实时性,在一定时间范围内,client能读到最新数据。
1.4 zookeeper的数据结构
- ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个Znode可以类似看作是一个目录,其下可以创建子目录。
- 很显然zookeeper集群自身维护了一套数据结构。这个存储结构是一个树形结构,其上的每一个节点,我们称之为"znode",每一个znode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。
1.5 zookeeper 应用场景
提供服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等
- 统一命名服务
- 统一配置管理
- 统一集群管理
- 服务器动态上下线
- 软负载均衡
二、zookeeper安装部署
2.1 下载
- https://zookeeper.apache.org/ (选择相应的版本)
2.2 安装前的准备
- 安装jdk环境
- 拷贝zookeeper安装包到linux环境
2.3 安装部署
- 解压在制定目录
- tar zxvf zookeeper.tar.gz -C /data/product/service
- 修改配置文件
- vim /data/product/service/zookeeper/conf/zoo.cfg
- vim /data/product/service/zookeeper/conf/zoo.cfg
- 启动与停止
- 启动zookeeper
- bin/zkServer.sh start
- 查看进程是否启动
- 执行:jps
- 出现:
4020 Jps 4001 QuorumPeerMain
- 查看状态
- bin/zkServer.sh status
- 出现
ZooKeeper JMX enabled by default Using config: /data/product/service/zookeeper/bin/../conf/zoo.cfg Starring zookeeper ... STARTED
- 停止Zookeeper
- bin/zkServer.sh stop
- 启动zookeeper