侧边栏壁纸
  • 累计撰写 43 篇文章
  • 累计创建 9 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

ZooKeeper的API实现

landonchan
2022-01-09 / 0 评论 / 0 点赞 / 11 阅读 / 2503 字
温馨提示:
欢迎留言讨论!若内容或图片失效,请留言反馈。若不小心影响到您的利益,请联系我们删除。

简单的API

create

在树中的某个位置创建一个节点

delete

删除一个节点

exists

测试某个位置是否存在节点

get data

从节点读取数据

set data

将数据写入节点

get children

检索节点的子节点列表

sync

等待数据传播

实现

  1. 复制数据库是包含整个数据树的内存数据库。更新会记录到磁盘以实现可恢复性,并且写入会在应用到内存数据库之前序列化到磁盘。

  2. 每个 ZooKeeper 服务器都为客户端提供服务。客户端仅连接到一台服务器来提交请求。读取请求由每个服务器数据库的本地副本提供服务。更改服务状态的请求(写入请求)由协议协议处理。

  3. 作为协议的一部分,来自客户端的所有写入请求都被转发到称为领导者的单个服务器。其余的 ZooKeeper 服务器(称为追随者)接收来自领导者的消息建议并就消息传递达成一致。消息传递层负责在失败时更换领导者并将追随者与领导者同步。

  4. ZooKeeper 使用自定义原子消息传递协议。由于消息传递层是原子的,ZooKeeper 可以保证本地副本永远不会分歧。当领导者收到写入请求时,它会计算要应用写入时系统的状态,并将其转换为捕获此新状态的事务。

0

评论区