带你认识 zookeeper

一、 概述

1.1 定义

zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。
分布式: 多台服务器去处理一件事情

1.2 zookeeper的工作机制

带你认识 zookeeper

1.3 zookeeper的特点

带你认识 zookeeper

  • zookeeper一个领导者(leader),多个跟随者(follower)组成的集群
  • 集群中只有半数以上节点存活,zookeeper集群就能正常服务
  • 全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的。
  • 更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行。
  • 数据更新原子性,一次数据更新要么成功,要么失败
  • 实时性,在一定时间范围内,client能读到最新数据。
1.4 zookeeper的数据结构

带你认识 zookeeper

  • ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个Znode可以类似看作是一个目录,其下可以创建子目录。
  • 很显然zookeeper集群自身维护了一套数据结构。这个存储结构是一个树形结构,其上的每一个节点,我们称之为"znode",每一个znode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。
1.5 zookeeper 应用场景

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

  • 统一命名服务
    带你认识 zookeeper
  • 统一配置管理
    带你认识 zookeeper
  • 统一集群管理
    带你认识 zookeeper
  • 服务器动态上下线
    带你认识 zookeeper
  • 软负载均衡
    带你认识 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
      带你认识 zookeeper
  • 启动与停止
    • 启动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