一个ZooKeeper集群或复制的ZooKeeper服务器集群应该优化配置,以避免出现脑裂(split-brain)等情况。 由于网络分割,同一ensemble的两个不同服务器可能构成领导者不一致,因此可能发生脑裂的情景。

以下配置选项可用于ZooKeeper服务器的ensemble中:

  • electionAlg:这个选项用于在ZooKeeper ensemble选举一个领导者。0的值对应于原始的基于UDP的版本,1对应于非验证的基于UDP的fast leader选举,2对应于基于身份验证的fast leader选举的UDP的版本,3对应于基于TCP的fast leader选举。目前,算法3是默认值。领导者选举的实现0、1和2现在已被弃用,而3是唯一使用的。
  • initLimit:这是指tick表示的心跳次数,以便追随者与领导者保持联系。 initLimit应该根据领导者和追随者之间的网络速度(和心跳)以及根据两者之间要传输的数据量来设置。 如果ZooKeeper存储的数据量很大,或者如果网络带宽较低,则应该增加initLimit。
  • syncLimit:这是以tick表示的心跳次数,追随者与领导者同步的时间。如果追随者由于服务器负载或网络问题而落后于领导者,那么他们就会被删除。然而,管理员存储的数据量对领导者和追随者之间的同步时间没有影响。相反,syncLimit依赖于网络延迟和吞吐量。
  • leaderServes:默认情况下,以领导者模式运行的ensemble中的服务器也接受客户端连接。 但是,在负载较重且工作繁忙的集成中,我们可以将引导服务器配置为不接受客户端连接。 这可以使用zookeeper.leaderServes Java系统属性进行配置。 这可以帮助以更快的速率协调写入更新,从而提高写吞吐量。
  • cnxTimeout:指的是为领导者选举通知打开连接的超时值。此参数仅适用于领导者选举算法3——快速领导者选举。默认值是5秒。
  • server.x=[hostname]:port1[:port2]:该参数用于定义ZooKeeper ensemble中的服务器。 当ZooKeeper服务器进程启动时,它通过在数据目录中查找myid文件来确定其身份。 myid文件包含ASCII码的服务器编号; 这应该与配置参数的server.x中的x相同。 这个参数可以进一步解释如下:
  • 有两个TCP端口号:port1和port2。第一个端口用于发送事务更新,第二个端口用于领导者选举。如果electionAlg是1、2或3(默认),则领导选举端口是必需的。
  • 所有的服务器使用相同的server.x配置来正确连接它们是非常重要的。 此外,由客户端使用的ZooKeeper服务器列表必须与每个ZooKeeper服务器的列表相匹配。

配置一个quorum

ZooKeeper允许在ensemble中灵活配置quorum。我们可以通过将ZooKeeper服务器分组来形成分层的quorum。这对于形成跨多个数据中心的ZooKeeper ensemble特别有用。跨数据中心的ensemble有助于确保在灾难场景中提供高可用性服务。以下选项对于在一个ensemble形成这样的组是有用的:

  • group.x=nnnnn[:nnnnn]:这实现了分层quorum结构。 x是组标识符,nnnnn对应于服务器标识符。 组必须是分离的,所有组的联合必须是ZooKeeper ensemble。
  • weight.x=nnnnn:在形成quorum时,用于为组中的服务器分配权重。 它对应于领导选举和Zookeeper Atomic Broadcast(ZAB)投票时服务器的权重。 默认情况下,服务器的权重为1。为服务器分配更多的权重可以使其更容易与其他服务器形成quorum。

转载于:https://www.cnblogs.com/IcanFixIt/p/7911954.html

11. 配置ZooKeeper ensemble相关推荐

  1. 创建Hbase Hive外部表报错: Unable to determine ZooKeeper ensemble

    创建HBase的Hive外部表 1: create external table ttt(rowkey string,info map<string,string>)STORED BY ' ...

  2. zookeeper安装_Centos7安装配置Zookeeper

    前言: 在小企业或者一些小项目中,当网站流量很小时,只需一个应用,便能将所有功能都部署在一起,以减少部署节点和成本.但当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应 ...

  3. CentOS7下安装配置zookeeper集群及设置开机自启

    1.在做zookeeper集群之前需要有至少三台centos机器或虚拟机 一.Zookeeper原理简介 ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程 ...

  4. 精髓,深入浅出剖析11个Zookeeper知识点,没有很难

    Zookeeper ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务.同步服务和命名注册.ZooKeeper 曾经是 Hadoop 的一个子项 ...

  5. zookeeper -- Mac 上 Intellij IDEA 配置 zookeeper(3.5.8) 源码阅读、运行、调试环境

    近期需要整理MIT6.824 中 分布式系统协调服务 zookeeper 的一些知识,想要在Mac 本地搭建一个可以方便运行调试的zookeeper环境,这玩意竟然耗费了一上午的时间,实在是不可忍:当 ...

  6. linux wlan进程名称,linux无线网络配置无线网卡驱动安装与wlan802.11配置

    Linux无线网络配置--无线网卡驱动安装与WLAN 802.11 配置 Linux无线网络配置--无线网卡驱动安装与WLAN 802.11配置2008-05-10 18:27 20739人阅读 评论 ...

  7. [Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例.

    今天 不知自己装的centos 出现了什么问题, 一直卡在 启动界面, 找了半天没找见原因(最后时刻还是发现原因, 只因自己手欠一怒之下将centos删除了, 而且选择的是在本地磁盘也删除. ..让我 ...

  8. Linux/Ubuntu 单机安装配置 zookeeper

    文章目录 下载 配置zookeeper 运行zookeeper 添加zookeeper命令到环境变量 下载 官网下载页面:https://archive.apache.org/dist/zookeep ...

  9. Debian 11 配置优化指南

    原文地址:Debian 11 配置优化指南 - WindSpiritIT 0x00 简介 本文仅适用于配置 Debian 11 Bullseye 文中同时包含 Gnome 桌面和 KDE 桌面配置,其 ...

最新文章

  1. 简单又实用的pandas技巧:如何将内存占用降低90%
  2. poj 2398 Toy Storage (计算几何,判断点和线段关系)
  3. 时序数据库技术体系 – InfluxDB TSM存储引擎之数据读取
  4. 准确估计透明物体的 3D 姿态:机器人收集 + Keypose 算法
  5. Maven工作笔记003---公司只允许代理上网_给maven配置代理下载jar包
  6. 软件测试_性能测试_关注点
  7. 系统学习NLP(二十七)--EMLo
  8. Wifi Enable 启动过程
  9. rust原声音乐_Joan Baez – Diamonds Rust
  10. python学习——格拉布斯准则实现
  11. android腾讯微博客户端开发,基于android系统的腾讯微博客户端的开发
  12. 弘扬优秀传统文化 致敬母爱母教伟大
  13. JAVA大写金额转小写金额过程
  14. go-http server使用hijack接管连接的管理
  15. 一种通用的Qt数据库接口操作方法
  16. php里style标签,style标签怎么用?
  17. Arun Gupta通过将HTML5与Java EE 7拥抱来提高生产力
  18. 2019.2以后idea插件库打不开解决办法(亲测可以使用)
  19. 60种提升自身能量的方法
  20. linux蓝牙语音遥控器,蓝牙智能遥控器介绍

热门文章

  1. 马哥语录第一季第二集
  2. Mac 上制作 SSL 证书
  3. setTimeout(〒︿〒) 请原谅我一直以来对你的忽视
  4. sqlserver2005 openRowSet 和row_Number
  5. mysql-------常用函数
  6. python打乱列表的方法_python打乱列表
  7. 技术篇-符号制作-线符号制作
  8. 百度地图API实现地理围栏
  9. 第一段VBA脚本留念
  10. MFC 教程【10_内存分配方式和调试机制 】