资讯专栏INFORMATION COLUMN

简述 ZAB 协议 以及 zookeeper

lwx12525 / 843人阅读

摘要:只允许有一个主进程接受客户事务请求并处理,收到请求后,将其转化为事务。并开启新一轮选举,新的会和过半的进行同步数据。同步结束时,切换为消息广播模式。若非节点收到客户请求,则该节点会将该请求发送到服务器上。

zookeeper

它为分布式应用提供了高效可靠的分布式协调服务

实现依赖于 ZAB协议,实现了主备模式架构用来保持集群中数据的一致性

Zookeeper 将所有数据存放在 内存中

应用场景:更适合读操作为主

角色:leader follower observer

leader 是通过选举的一台机器(提供读写功能)

follower 和 observer 提供读功能,而observer 不参与选举 和半写成功策略(因此可以提升集群读性能)

集群节点为奇数个

节点分为临时节点,持久节点,顺序节点。 每个节点都又 star 结构

重要功能 :watch 功能

客户端: zkclient curator

ZAB 协议

为zookeeper 设计 支持崩溃恢复的消息广播协议。

ZAB 只允许有一个主进程接受客户事务请求并处理 (leader),leader收到请求后,将其转化为事务proposal。

leader 会为每个follower 创建一个队列,将事务放入响应队列,保证事务顺序。

之后再队列中顺序向其他节点广播该提案,follower 收到后会将其以事务形式写入到本地日志,并向leader 发送 Ack 反馈。

leader等待并收到超过一半的follower 响应时向其他节点发送 commit 消息,同时 leader 提交提案

ZAB 两种模式

故障恢复模式

消息广播

模式切换

当机器出现故障时,就进入 故障恢复模式。并开启新一轮选举,新的leader 会和过半的 follower 进行同步数据。同步结束时,切换为消息广播模式。

例子: 当一台 遵循 ZAB 协议的服务器启动后,若监测到有 leader 在广播消息后,自动切换为 恢复模式,同步数据,之后再切换为消息广播。

非leader 节点 收到 客户请求,则该节点 会将该请求发送到 leader 服务器上。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74658.html

相关文章

  • Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)

    摘要:协议是为分布式协调服务专门设计的一种支持崩溃恢复的一致性协议,这个机制保证了各个之间的同步。选主是协议中最为重要和复杂的过程。以实际效果而言,分区相当于对通信的时限要求。参考官方文档阿里巴巴为什么不用做服务发现定理的含义阮一峰 前言 同学们,在上一章中,我们主要讲了Zookeeper两种启动模式以及具体如何搭建。本章内容主要讲的是集群相关的原理内容,第一章可以当做是Zookeeper原...

    Olivia 评论0 收藏0
  • 可能是全网把 ZooKeeper 概念讲的最清楚的一篇文章

    摘要:的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。具有不可分割性即原语的执行必须是连续的,在执行过程中不允许被中断。 该文已加入开源文档:JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识)。地址:https://github.com/Snailclimb... showImg(https:...

    DrizzleX 评论0 收藏0
  • 快速了解zookeeper

    摘要:之后服务器等待其他服务器的反馈,一旦超过半数的服务器进行了正确的反馈,那么就会再次向所有的服务器分发消息,要求其将前一个进行提交。协议包括两种基本的模式,分别是崩溃恢复和消息广播。 前言 zookeeper本质上就是一个分布式协调服务,用来解决分布式一致性的问题。 本文适合有一定分布式基础的读者阅读。什么叫相关的基础呢?起码你得知道系统架构为何从集中式演变成了分布式,分布式有哪些优点...

    imccl 评论0 收藏0
  • ZooKeeper 学习笔记

    摘要:与此同时,小组也一同致力于项目,参与了很多动物命名的项目,其中有广为人知的项目。主控服务器将所有更新操作序列化,利用协议将数据更新请求通知所有从属服务器,保证更新操作。在术语下,节点被称为。命名为的,由系统自动生成,用配额管理。 ZooKeeper 介绍 ZooKeeper(wiki,home,github) 是用于分布式应用的开源的分布式协调服务。通过暴露简单的原语,分布式应用能在之...

    funnyZhang 评论0 收藏0
  • Zookeeper知识点整理

    摘要:当已经超过个心跳的时间也就是长度后服务器还没有收到客户端的返回信息那么表明这个客户端连接失败。 基础篇 1、zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务,使得分布式应用可以基于这些接口实现诸如同步、配置维护和分集群或者命名的服务。...

    linkFly 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<