资讯专栏INFORMATION COLUMN

zookeeper深入理解-同事讨论引起的一场理解

fancyLuo / 699人阅读

摘要:当时我心里默默想着他那个集群投票的算法哎对呀一定要超过半数的投票通过才能正常执行。恍惚中觉得同事的说法好像挺的。为了验证这俩的说法。我对又有了一次深入的理解。因为的投票机制,要超过半数的投票通过,才能执行此次请求。

首先说说是怎么引起这次深入理解zk的吧。
A同事:突然问了一句“zk一般集群都是奇数台,要是集群坏了一台机器该怎么工作,还能正常工作吗?”
B同事:这个zk集群自己会动态抛弃一台,又是奇数台。
当时我心里默默想着zk他那个集群投票的paxos算法,哎对呀一定要超过半数的投票通过才能正常执行。恍惚中觉得B同事的说法好像挺ok的。
A同事:(一般zk都是7台,坏了一台就还有6台,我们使用的是7台的集群)剩了6台,要是投票数3v3,应该是算这次投票失败吧。
听了A的回复,我感觉是哈,好像也有道理。为了验证这俩的说法。我对zk又有了一次深入的理解。
1.zk的集群节点分类
Leader、Follower和Observer
Leader:最终决策者,也是集群master,负责手机Follower的意见
Follower:参与决议事件
Observer:用于提升zk性能的节点,主要是提高其对外读的性能提高,并且这类节点不参与投票,也提高了zk增删改的性能.(因为zk基于投票选举策略的思路,每次的增删改请求都将被转发到集群Leader节点进行后续的投票表
决)
2.zk投票表决机制以及集群数量
Leader将收到的请求(增删改),广播给所以Follower节点,在广播给所以Follower节点之前会生成一个单调递增的id,zid,当Leader只要收到超过半数以上决议通过,就执行该请求,不会等待其他未表决(未返回的)Follower节点,所有广播的消息都将按zid排序进行执行。
因此zk集群的数量其实任意台都行,这里的集群数量暂且不考虑Observer,出于稳定性和可用性的考虑(CAP理论),都会多台机器部署。因为zk的投票机制,要超过半数的投票通过,才能执行此次请求。比如3台,必须要2台机    
器决议通过之后才能执行,即剩下2台依旧可以正常对外提供服务,可容错1台,4台,必须要3台机器决议通过之后才能执行,即剩下3台依旧可以正常对外提供服务,可容错1台。所以偶数和奇数台的可容错(可用性)是一样的,
为何要多一台机器去部署呢?并且zk多一台机器参与表决,写入的性能也会线性下降。
      机器数量        容错数量
        1                0
        2                0
        3                1
        4                1
        
        2n-1            n-1
        2n              n-1
    




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

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

相关文章

  • 不“破”阿里终不还,“寒潮”之下Java程序员的凌云壮志

    摘要:终上所述这一切的一切,就是因为你技术不行但使龙城飞将在,不破楼兰终不还但使双手两眼在,不入阿里终不还是的,只要你双手还能敲代码,双眼还能看得见,对于程序员来说,阿里等这些大厂将会是你技术的必达点。 人在屋檐下,哪能不低头 (记2018年底互联网大寒潮) showImg(https://segmentfault.com/img/bVbmULW?w=240&h=240); 伴随着深冬凌冽的...

    GitCafe 评论0 收藏0
  • 不“破”阿里终不还,“寒潮”之下Java程序员的凌云壮志

    摘要:终上所述这一切的一切,就是因为你技术不行但使龙城飞将在,不破楼兰终不还但使双手两眼在,不入阿里终不还是的,只要你双手还能敲代码,双眼还能看得见,对于程序员来说,阿里等这些大厂将会是你技术的必达点。 人在屋檐下,哪能不低头 (记2018年底互联网大寒潮) showImg(https://segmentfault.com/img/bVbmULW?w=240&h=240); 伴随着深冬凌冽的...

    高璐 评论0 收藏0
  • Spring Cloud Alibaba到底坑不坑?

    摘要:我没有能力去控制那些自媒体发布这些不实的内容,但是在我了解的范围内,还是尽力输出一些我的理解。 之前我发过一篇《说说我为什么看好Spring Cloud Alibaba》,然后这两天有网友给我转了这篇文章《坑爹项目spring-cloud-alibaba,我们也来一个》,问我的看法是怎么样的,聊天时候简单说了一下。今天在家休息,抽空整理一下内容,逐点说一下我的看法,主要还是觉得这篇文章...

    娣辩孩 评论0 收藏0
  • Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)

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

    Olivia 评论0 收藏0
  • 沪江前端由H5页面引起一场前端数据结构讨论

    摘要:发送请求,处理数据。在上面这个场景中,这类数据的结构可能是最常碰到的。整个过程可以简化成数据的变化引起视图的变化,和现在很多前端框架数据驱动思想有几分相似。至此一个对于页面的抽象出来的数据结构雏形基本完成了。 作者:周周(沪江资深Web前端开发工程师)本文为原创文章,转载请注明作者及出处 前言 近期在小D十周年活动之际,又看到了一个自家H5专题梦工厂生成的页面。 showImg(htt...

    xialong 评论0 收藏0

发表评论

0条评论

fancyLuo

|高级讲师

TA的文章

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