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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/DeepInThought/p/11037449.html

【0】Zookeeper QA相关推荐

  1. 钉钉工作流报错:50001流程处理异常:审批系统错误,原因为【{0}】

    目录 完整报错如下 操作过程如下 猜测原因 咨询官方原因 完整报错如下 {"code": 50001,"msg": "流程处理异常:审批系统错误,原因 ...

  2. 【分布式】ZooKeeper论文总结

    文章目录 1. ZK是什么 1.1 简介 1.2 作用 1.3 应用场景 2. ZK的关键技术 2.1 共识算法和一致性 2.1.1 强一致性 2.1.1.1 顺序一致性 2.1.1.2 线性一致性 ...

  3. 【Flink】Zookeeper connection loss leads to Flink job restart

    1.概述 转载:添Zookeeper connection loss leads to Flink job restart 看这个之前可以先看看:[Flink]Flink 报错 ResourceMan ...

  4. PlutoSDR学习指南【0】PlutoSDR介绍

    [注]前几篇文章介绍了PlutoSDR的简单实用,这一篇文章在补一个对PlutoSDR的介绍,本应当放在第一篇推文,这篇文章就是第0篇吧! ADI Pluto是ADI公司推出的主动学习模块(Activ ...

  5. 树莓派ZeroW学习笔记【0】wiringPi安装和测试

    一.wiringPi简介 [1]wiringPi是仅应用于树莓派平台的GPIO控制库函数,遵循GNU LGPLv3开源协议,并由GIT工具维护,任何人都可以免费使用该软件包.wiringPi使用C或者 ...

  6. ArcGisPro脚本工具【0】——制作你的第一个脚本工具

    本系列以ArcGisPro2.8为例.Pro的脚本采用的python版本是3.X,相比于ArcGis10.X采用的python2.X,有了很大的进步,尤其是对中文字符的支持,可以避免很多奇怪的bug. ...

  7. 【PEST++】05 QA常见问题释疑

    目录 0 PEST++系列文章 1 第一位朋友 ZJ 2 第二位朋友 LGH 3 第三位朋友 XY 0 PEST++系列文章 [PEST++]01 参数优化与灵敏度分析 [PEST++]02 新安江模 ...

  8. 【I2C】I2C QA

    [I2C]在中断函数中能否使用I2C传输?为什么? 不能,多点原因. 1.中断要求尽快处理,否则会影响到其他中断的响应.(I2C和SPI传输过程都比较耗时) 2.I2C传输(I2C_transfer) ...

  9. 【0】PhotoShop常用快捷键备忘录

    [单个英文字母] ⒈[V]:移动工具 ⒉[M]:选择工具 ⒊[W]:快速选择工具 ⒋[C]:裁剪工具 ⒌[]: ⒍[]: ⒎[]: ⒏[]: ⒐[]: ⒑[delete]:删除所选图层 [ctrl+] ...

最新文章

  1. SAP PM项目导向维护
  2. 密码技术--椭圆曲线算法EDCSA数字签名及Go语言应用
  3. buu [AFCTF2018]Morse
  4. c语音 udp最大长度_c语言udp自定义头文件 网络通信程序
  5. WPF使用Canvas绘制可变矩形
  6. 使用 Eclipse 建立包的时候,“name”下可选项“Create package-info.java”的作用是什么?
  7. ElementUI+Java实现搜索提示列表
  8. 第三部分 Calendar函数接口
  9. vue3.0项目服务器部署
  10. arm linux samba,嵌入式linux系统教你制作samba服务器
  11. Nacos 启动报错 Unable to start embedded Tomcat
  12. C#解析json和xml数据
  13. 压箱底的Android UI开源库(一)
  14. python处理excel函数库_Python 操作 Excel 的函数库
  15. 中国保险业过去五年基础数据分析
  16. Altium Designer系列:添加泪滴
  17. vivox70pro怎么拍出好看的月亮
  18. 海尔为什么要向青年一代提出“修身”解决方案?
  19. mdx词典包_欧路词典—使用体验
  20. android 获取年月日

热门文章

  1. Office web apps 服务器运行一段时间之后CPU就是达到100%
  2. Intel亚太研发有限公司段建钢:存储市场的那些年
  3. 小P寻宝记——好基友一起走
  4. Jumpserver web界面跳板机
  5. java日志记录的5条规则
  6. snort 使用mysql的安装
  7. ural 1353. Milliard Vasya's Function
  8. python评语生成_电商 Python 生成补单公司需要的评论格式3
  9. 女生做产品经理好吗_产品经理如何做产品架构设计
  10. hyperterminal使用教程_如何在Win中安装使用超级终端HyperTerminal.doc