Tips
有关ZooKeeper部署和管理的详细说明,请参阅官方文档http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html。

1. 配置ZooKeeper服务

ZooKeeper服务器中包含各种配置参数。这些参数在zoo.cfg的配置文件中定义。如果它们被配置为相同的应用程序,部署在ZooKeeper服务中的服务器可以共享一个文件。myid文件将服务器和其他服务器区分开来。虽然该配置文件中的默认选项通常为应用程序的评估或测试提供最常见的用例,但在生产环境中,这些参数的值被正确地设置为适当的推理是非常重要的。

还可以在 Java 系统属性中使用zookeeper.propertyName设置许多配置参数。这些属性在启动服务器时使用-D选项设置。然而,在配置文件中定义的参数优先于在Java命令行中使用-D选项设置的参数。

2. 最小配置

这里提到了每个ZooKeeper服务器的配置文件中必须定义的基本配置参数。 这些参数不是预定义的,必须在配置文件中设置才能运行ZooKeeper实例。

  • clientPort:这是客户端连接到服务器的TCP端口。 客户端口可以设置为任意数字,不同的服务器可以配置为监听不 同的端口。 默认端口是2181。
  • dataDir:这是ZooKeeper存储内存数据库快照的目录。 如果没有单独定义dataLogDir参数,则更新到数据库的事务日志也将存储在此目录中。 如果此服务器是ensemble的成员,则myid文件也将存储在此目录中。 如果数据目录对性能不敏感,事务日志存储在不同的位置,则不需要在专用设备中进行配置。
  • tickTime:这是用毫秒表示的单次标记的长度。Tick是ZooKeeper用来确定心跳和会话超时的基本时间单位。默认的tickTime参数是2000毫秒。降低tickTime参数可以实现更快的超时,但增加了网络流量(心跳)和对ZooKeeper服务器的处理开销。

3. 存储配置

下面是用于配置ZooKeeper服务的存储选项的高级参数:

  • dataLogDir:这是存储ZooKeeper事务日志的目录。 服务器使用同步写入刷新事务日志。 因此,使用专用事务日志设备非常重要,这样ZooKeeper服务器的事务日志记录就不会受到系统中其他进程的I/O活动的影响。 拥有一个专用的日志设备可以提高总体吞吐量,并为请求分配稳定的等待时间。
  • preAllocSize:zookeeper.preAllocSize Java系统属性设置块大小预先分配给事务日志文件。 默认块大小是64 MB。 预先分配事务日志会使磁盘搜索最小化。 如果经常使用快照,则事务日志可能不会增长到64 MB。 在这种情况下,我们可以调整此参数来优化存储使用情况。
  • snapCount:zookeeper.snapCount Java系统属性提供了两个连续快照之间的事务数。在snapCoun指定的时间后,事务被写入到一个logfile文件,会启动一个新的快照,并创建一个新的事务日志文件。快照是一个性能敏感的操作,因此,对snapCount有一个较小的值可能会对ZooKeeper的性能产生负面影响。snapCount参数的默认值为100,000。
  • traceFile:requestTraceFile Java系统属性设置此选项以启用将请求记录到traceFile.year.month.day的跟踪文件。 这个选项对调试很有用,但是会影响ZooKeeper服务器的整体性能。
  • fsync.warningthresholdms:这是以毫秒为单位的时间;它定义了允许刷新事务日志,预写日志(write-ahead log——WAL)的所有未完成写入的最长时间的阈值。 只要同步操作的时间超过此值,它就会向调试日志发出警告消息。 默认值是1,000。
  • autopurge.snapRetainCount:指的是分别保存在目录dataDir和dataLogDir中的快照数和相应的事务日志数。 默认值是3。
  • autopurge.purgeInterval:这是指以小时为单位的时间间隔来清除旧的快照和事务日志。 默认值为0,表示默认情况下禁用自动清除功能。可以将此选项设置为正整数(1或更高)以启用自动清除。 如果禁用(设置为0),则默认情况下,清除不会自动发生。 手动清除可以通过运行ZooKeeper发行版bin目录下的zkCleanup.sh脚本来完成。
  • syncEnabled:这个配置选项是在3.4.6及更高版本的ZooKeeper中新引入的。 它使用Java系统属性zookeeper.observer.syncEnabled来设置,以使observer能够记录事务并将快照写入磁盘,默认情况下就像follower一样。 observer不像follower一样参与投票过程,而是提交领导者的建议。 启用此选项可减少重新启动时观察者的恢复时间。 默认值是true。

4. 网络配置

以下配置参数与客户端与ZooKeeper服务器的交互有关:

  • globalOutstandingLimit:该参数定义ZooKeeper中未完成请求的最大数量。 在现实中,客户端可能比ZooKeeper能够更快地提交请求。 如果有大量的客户端,就会发生这种情况。 此参数使ZooKeeper能够通过限制客户端来执行流量控制。 这是为了防止ZooKeeper由于排队的请求而耗尽内存。 一旦达到globalOutstandingLimit,ZooKeeper服务器将开始限制客户端请求。 默认限制是1000个请求。
    (Java系统属性:zookeeper.globalOutstandingLimit)
  • maxClientCnxns:这是单个客户机和ZooKeeper服务器之间并发套接字连接的最大数量。客户机由其IP地址标识。设置TCP连接是一种资源密集型操作,此参数用于防止服务器超载。它还用于防止某些类型的DoS攻击,包括文件描述符用尽。默认值是60。将此设置为0完全消除了并发连接的限制。
  • clientPortAddress:这是监听客户端连接的IP地址。默认情况下,ZooKeeper服务器绑定到接受客户端连接的所有接口。
  • minSessionTimeout:这是服务器允许客户端协商的最小会话超时时间(以毫秒为单位)。 默认值是tickTime参数的两倍。 如果此超时设置为非常低的值,则可能由于错误地检测到客户端故障而导致误报。 将此超时设置为更高的值将会延迟对客户端故障的检测。
    maxSessionTimeout:这是服务器允许客户端协商的最大会话超时时间(以毫秒为单位)。 默认情况下,它是tickTime参数的20倍。

10. 管理Apache ZooKeeper配置的更多相关文章

  1. Mac Apache ZooKeeper 配置

    1.配置准备工作 1)配置 ZooKeeper 准备工作 下载相关软件 apache-zookeeper-v3.4.10.zip ZooKeeper 官网 ZooKeeper 配置软件下载地址,密码: ...

  2. Apache ZooKeeper在Kafka中的角色 - 监控和配置

    1.目标 今天,我们将看到Zookeeper在Kafka中的角色.本文包含Kafka中需要ZooKeeper的原因.我们可以说,ZooKeeper是Apache Kafka不可分割的一部分.在了解Zo ...

  3. 在 Linux 多节点安装配置 Apache Zookeeper 分布式集群

    规划: 三台物理服务器就形成了(法定人数).对于高可用性集群,您可以使用高于3的任何奇数.例如,如果设置5台服务器,则集群可以处理两个故障节点等. 物理服务器需要开启的端口 2888 , 3888 和 ...

  4. 线上zk节点报org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:187) at java.lang.Thread.run(libgcj.so.10)

    线上zk做配置管理,最近突然发现两个节点一直在刷下边 java.nio.channels.CancelledKeyException    at gnu.java.nio.SelectionKeyIm ...

  5. win 10下Apache和PHP的安装配置

    一.下载Apache 官网下载:https://httpd.apache.org/ 或者百度网盘链接:https://pan.baidu.com/s/17zVFNSfzzwDgFti_fboUSA 提 ...

  6. 2.动手实操Apache ZooKeeper

    Tips 做一个终身学习的人! 日拱一卒,功不唐捐. 在本节中,我们将讲解如何下载并安装Apache ZooKeeper,以便我们可以直接开始使用ZooKeeper. 本部分旨在通过提供详细的安装和使 ...

  7. Apache ZooKeeper 单机、集群部署文档

    简介: Apache ZooKeeper 是一个分布式应用的高性能协调服务,功能包括:配置维护.统一命名.状态同步.集群管理.仲裁选举等. 下载地址:http://apache.fayea.com/z ...

  8. Apache ZooKeeper Getting Started Guide 翻译

    ZooKeeper 開始向导 開始:用zookeeper协调分布式程序 单例操作 管理zookeeper存储 连接zookeeper 执行zookeeper 以复制模式执行zookeeper 其他优化 ...

  9. Zookeeper 配置和原理探究

    一 Zookeeper是什么? 服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,那么这些信息如何推送到各个节点?并且保证信息的一致性和可靠性?我们知道分布式协调服务很难正确 ...

随机推荐

  1. 【特效】hover图片立体翻转

    hover图片翻转效果二::绕Y轴旋转90度,注意父层要加透视属性perspective,这样才能看出立体效果 html: <ul class="list-img"> ...

  2. caffe源码 池化层 反向传播

    图示池化层(前向传播) 池化层其实和卷积层有点相似,有个类似卷积核的窗口按照固定的步长在移动,每个窗口做一定的操作,按照这个操作的类型可以分为两种池化层: 输入参数如下: 输入: 1 * 3 * 4 ...

  3. 中秋H5,这篇脑洞开的可以!

    案例:嫦娥--寻开心出品:凯迪仕 1.内容:这是一支视频类H5案例.Loading完毕进入页面,首屏提示案例最佳观看方式为先锁屏再横屏.点击开始按钮播放视频,视频讲述"葫芦娃"缠着 ...

  4. linux命令综合

    查找文件中指定字符串并且高亮显示: find .|xargs grep --color=auto "hello" dos下查找: netstat -ano|findstr &quo ...

  5. ELK系列~Nxlog日志收集加转发(解决log4日志换行导致json转换失败问题)

    本文章将会继承上一篇文章,主要讲通过工具来进行日志的收集与发送,<ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd> Nxlog是一个日志收集工具, ...

  6. gnome 3 美化

    首先,去http://gnome-look.org/找到需要的主题,然后手动安装或者用下载到的主题包里的脚本安装 手动安装对应路径如下: 鼠标,图标主题解压放置:~/.icons或/usr/share ...

  7. 开发《WORD阅读器》小结(1)

    这是一个相对原生的APP开发, 从GITHUB上下载了相应的框架,应该是至少2年以前的一个lovereader,是我能快速找到的为数不多的WORD阅读器的源码.应该是用ECLIPSE开发的,而我现在只 ...

  8. JDBC(三)数据库连接池(DBCP、C3P0)

    前言 这段时间状态有一点浮躁,希望自己静下心来.还有特别多的东西还没有学懂.需要学习的东西非常的多,加油! 一.JDBC复习 Java Data Base Connectivity,java数据库连接 ...

  9. WinForm 菜单控件

    一:MenuStrip 菜单条 MenuStrip 是应用程序菜单条的容器. 二:ToolStripMenuItem 像上面图中, 文件 格式 等这些菜单当中的一级菜单以及文件中的 新建 打开 分割条 ...

  10. JavaNIO阻塞IO

    package com.java.NIO; import java.io.IOException; import java.net.InetSocketAddress; import java.nio ...