ZooKeeper深入探究

zookeeper是什么

Zookeeper 是一个开源的分布式协调服务框架 ,主要用来解决分布式集群中应用系统的一致性问题和数据管理问题
在这里插入图片描述

Zookeeper特点

Zookeeper 本质上是一个分布式文件系统, 适合存放小文件,也可以理解为一个数据库

  • Zookeeper是一个集群
  • Zookeeper 中存储的其实是一个又一个 Znode, Znode 是 Zookeeper 中的节点
  • Znode 是有路径的, 例如 /data/host1 , /data/host2 , 这个路径也可以理解为是Znode 的 Name
  • Znode 也可以携带数据, 例如说某个 Znode 的路径是 /data/host1 , 其值是一个字符串 “192.168.0.1”
  • 使用路径获取 Znode
  • 获取 Znode 携带的数据
  • 修改 Znode 携带的数据
  • 删除 Znode
  • 添加 Znode

在这里插入图片描述

Zookeeper的架构

在这里插入图片描述

在这里插入图片描述

Zookeeper应用场景

  1. 发布/订阅:
    Zookeeper采用了推拉相结合的模式,客户端向服务端注册自己需要关注的节点,一旦该节点数据发生变更,那么服务端就会向相应的客户端推送Watcher事件通知,客户端接收到此通知后,主动到服务端获取最新的数据
    在这里插入图片描述
  2. 命名服务
  • 可以实现一套分布式全局唯一ID的分配机制。
  • 通过调用Zookeeper节点创建的API接口就可以创建一个顺序节点,并且在API返回值中会返回这个节点的完整名字,利用此特性,可以生成全局ID
  1. 分布式协调/通知
  • 心跳检测:
  • 工作进度汇报:
  • 系统调度:
  1. 分布式锁
  • 排它锁又称为写锁或独占锁
  • 共享锁又称为读锁
  1. 分布式队列

Zookeeper的选举机制

  • 每个Server发出一个投票
  • 接受来自各个服务器的投票
  • 处理投票:
    • 优先检查ZXID。ZXID比较大的服务器优先作为Leader。
    • 如果ZXID相同,那么就比较myid。myid较大的服务器作为Leader服务器。
  • 统计投票
  • 改变服务器状态

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值