zookeeper理论学习(paxos和Zab协议)

为什么要使用zookeeper(chubby开源实现)— 动物园管理员

  • 协调分布式环境下的服务

  • 解决分布式环境中的问题

    1. 分布式环境下无法保证顺序执行

    2. 分布式环境下无法明确执行结果(可能由于网络的波动,无法判断结果是否执行成功)

    3. 无法保证数据一致性

  • 应用

    • 和dubbo配合保证多点服务的可用性

    • hadoop确保整个集群只有一个NameNode,存储配置信息等

    • HBASE确保整个集群只有一个HMaster

  1. Paxos

    1. 文章 https://blog.csdn.net/dajiangtai007/article/details/68488701

      1. 有一个叫做Paxos的小岛(Island)上面住了一批居民,岛上面所有的事情由一些特殊的人决定,他们叫做议员(Senator)。

      2. 议员的总数(SenatorCount)是确定的,不能更改。

      3. 岛上每次环境事务的变更都需要通过一个提议(Proposal),每个提议都有一个编号(PID),这个编号是一直增长的,不能倒退。

      4. 每个提议都需要超过半数((SenatorCount)/2+1)的议员同意才能生效。

      5. 每个议员只会同意大于当前编号的提议,包括已生效的和未生效的。

      6. 如果议员收到小于等于当前编号的提议,他会拒绝,并告知对方:你的提议已经有人提过了。这里的当前编号是每个议员在自己记事本上面记录的编号,他不断更新这个编号。整个议会不能保证所有议员记事本上的编号总是相同的。 现在议会有一个目标:保证所有的议员对于提议都能达成一致的看法。

    2. 理解zookeeper原理

      1. image.png
      2. 角色说明

        1. leader(只有这个角色能提出proposal,保证提议的顺序)

        2. server(议员)

        3. client(客户端)

        4. proposal 提议(znode)

        5. zxid 编号

    3. 场景

      1. client找议员(server)询问(查询)某一条法令,议员回答且同时声明自身数据不一定是最新的,如需最新数据需要clent调用sync方法确认

      2. clent找议员提交一个法令(create),议员将建议提交给leader,由leader发起投票且产生结果,最终告诉client

      3. leader挂了期间,整个服务无法进行,直到选出新的leader

    4. CAP —> CA

  2. zab 原子广播(zookeeper核心)

    1. 数据交互图

      1. image.png

        image.png
      2. 角色

        1. server

          1. leader(投票的发起和决议,更新状态)

          2. learner

            1. follower (参与投票,接受客户端请求并返回结果)

            2. observer 和follower功能一致,但不投票 提高读取速度

        2. client

      3. 交互过程

        1. request —> (follower 或者 observer) update操作,query操作会直接返回

        2. request 转给leader , leader自己先更新

        3. leader 向其他的所有follower抛出proposal,

        4. follower向leader 确认ack

        5. leader汇总结果之后,向所有follower 发送commit

    2. Zab协议 zookeeper automatic broadcast 两种模式

      1. 恢复(选主)模式,可用性 - 当服务重启或者在leader崩溃之后,进入恢复模式,当leader被选举出来且大多数server完成了和leader的状态同步后恢复模式结束。

      2. 广播模式(同步)一致性

    3. 选举,不一定非是奇数台

      1. 奇数和偶数台的容错是一样的,没有必要用偶数台,节省资源(4台机器,保障集群运行的情况下,允许有一台挂掉,3台机器,保障集群运行的情况下,允许有一台机器挂掉)

      2. 半数以上就可以选举出leader,如果是三台机器,第二台启动的是leader,类推,5台的话第三个启动的就是leader

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容

  • 声明:本文写的时候,当时就是完全不懂zk,边看网上的文章边学习归纳和整理,这不是我的产出,不用点赞打赏。大家理智友...
    _Zy阅读 76,022评论 38 129
  • 一个真正的写数据流程是怎么样的?一个真正的读数据流程是怎么样的?一个真正的同步数据流程是怎么样的?从哪里到哪里?什...
    时待吾阅读 4,015评论 0 14
  • 最近在学习ZooKeeper,一直想写篇相关博文记录下学习内容,碍于自己是个拖延症重度患者总是停留在准备阶段,直到...
    Lexus90511阅读 7,926评论 5 14
  • 今日书单 1、《鸽子拉便便》;2、《我要找妈妈》;3、《嘿 游戏开始》;4、《巴巴爸爸的火星旅行》;5、《佩奇家的...
    苏望年阅读 307评论 0 0
  • 文/叫我十一就好 风肆无忌惮的刮着 吹乱了我的头发 吹散了我的想法 确认过眼神 我却没有遇上对的人 说好的唯一最终...
    叫我十一就好阅读 323评论 3 7