zoukankan      html  css  js  c++  java
  • 【0】Zookeeper Q&A

    1、Observer角色如何配置?

    Zookeeper集群中的中的Leader和Follower角色是由服务器启动时期的Leader选举产生的,Observer不参与选举,此角色的节点需要在配置文件zoo.cfg中配置。示例如下:

    server.1=server1:2888:3888
    server.2=server2:2888:3888
    server.3=server3:2888:3888
    server.4=server4:2888:3888
    server.5=server5:2888:3888:observer
    

    2、Zookeeper集群一定要是奇数台服务器吗?

     不一定,偶数台也可以。选择奇数台原因如下:

    原因一:容错性

    Leader选举算法采用了Paxos协议,其核心就是半数通过。
     对于奇数台服务器,比如3台,2 > 3/2 集群最多允许一台故障;
     对于偶数台服务器,比如4台,2 !> 4/2集群最多允许一台故障;
     由此可见,3、4台的容灾能力是一样的,在性能因素非系统瓶颈的情况下,没必要多增加一台,生产一般使用3/5/7。

    原因一:防止脑裂

     对于奇数台服务器,比如5台,当集群出现脑裂时,可能情况为:[1,4]、[2,3]。无论何种情况,都存在能重新进行Leader选举的一方。
     对于偶数台服务器,比如6台,当集群出现脑裂时,可能情况为:[1,5]、[2,4]、[3,3]。当因网络连通问题出现[3,3]这种情况时,即使6台服务器均可正常工作,也无法进行Leader选举。

    3、为什么投票要坚持半数原则?

    投票半数有两种情况:选举Leader和更新数据。

    3.1、对于选举Leader的投票

    在脑裂的情况下,未过半数投票即可成为Leader,则集群中会出现多个Leader的情况。

    3.2、对于更新数据的投票

    假设集群中有三台服务器,节点数据更新情况如下:

    情况一:投票未过半未成功。无论哪个节点,都不会影响集群数据一致性。
    情况二:投票未过半成功。当server(1)节点故障时,将出现丢失数据的情况。
    情况三:投票过半且成功。无论哪个节点故障,集群中都存在节点记录了最新提交的数据。
    情况四:同情况三。
     说白了,就是当出现故障时,只要集群能正常向外提供服务(过半数节点未故障),在正常工作的节点中,一定有一个节点上存着本集群数据一致性最后的希望(最新的成功提交的事务)而存有此希望的节点也将成为Leader选举中的种子选手。
    说明:集群中同时故障两个节点的情况不予考虑,因为此时集群将不再提供服务,也就不存在访问到脏数据的情况了。

    4、keepalived和zookeeper对比

  • 作者: DeepInThought
    出处: https://www.cnblogs.com/DeepInThought
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
查看全文
  • 相关阅读:
    SQL中的union和union all区别(转)
    Atitit 学校模式之 天堂模式 目录 1.1. 宗旨,让学生们乐不思蜀 打造人间天堂 2 2. 组织结构 2 2.1. 娱乐事业部 2 2.2. 文艺事业部 2 2.3. 三大金山挖掘(教育 医
    Atitit json序列化工具 JsonParserAtiver 参考 Atitit json序列化原理 序列化是将一个对象变成json格式的字符串,而反序列化是将json格式的字符串变
    Atitit 院系和专业规划 大学里的院系,院一般指的都是学院,比如管理学院、法学院这种,系指的就是院里面的专业,比如中文系、哲学系这种。 中文系、哲学系 土木工程 目录 1. 经济管理学院 2
    目录 1.1. Vue是什么??客户端mvc框架,,功能类似springmvc 1 1.2. Why?为什么使用它?? 1 1.3. 包括哪些组件与内部构成与原理 1 2. Howto 怎么使用 2
    Atitit soa之道 艾提拉著作 SOA概念、技术与设计读书笔记 第3章 理解面向服务 10 第4章 理解面向服务架构 39 第5章 理解服务与微服务的层次 74 第6章 Web服务及微服务的
    Atitit table的读取解析from html by jsoup java html paresr 目录 1. atitit.gui控件的定位与选择器 1 2. 读取表格流程 遍历表格ta
    爬虫的一些知识点 目录 1. 网络爬虫 1 2. 产生背景 垂直领域搜索引擎 2 3. 1 聚焦爬虫工作原理以及关键技术概述 3 4. 涉及技术 3 4.1. 下载网页 一般是通过net api
    《数据算法:Hadoop_Spark大数据处理技巧》艾提拉笔记.docx 第1章二次排序:简介 19 第2章二次排序:详细示例 42 第3章 Top 10 列表 54 第4章左外连接 96 第5
    Atitit 算法原理与导论 目录 1. Attilax总结的有用算法 按用途分类 1 1.1. 排序算法 字符串匹配(String Matching) 1 1.2. 加密算法 编码算法 序列
  • 原文地址:https://www.cnblogs.com/DeepInThought/p/11037449.html
  • Copyright © 2011-2022 走看看