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. 【学习】ie8支持rgba()透明度颜色

    (我的博客网站中的原文:http://www.xiaoxianworld.com/archives/285,欢迎遇到的小伙伴常来瞅瞅,给点评论和建议,有错误和不足,也请指出.) rgba()函数可以用 ...

  2. Quartz格式设置说明

    这些星号由左到右按顺序代表 :     *    *     *     *    *     *   *                                             格式 ...

  3. redis3.2新功能--GEO地理位置命令介绍

    概述 redis3.2发布rc版本已经有一段时间了,估计RedisConf 2016左右,3.2版本就能release了.3.2版本中增加的最大功能就是对GEO(地理位置)的支持.说起redis的GE ...

  4. USACO2004 Open提交作业(区间DP)

    Description 贝西在哞哞大学选修了C门课,她要把这些课的作业交给老师,然后去车站和同学们一 起回家.老师们在办公室里,办公室要等他们下课后才开,第i门课的办公室在Ti时刻后开放. 所有的办公 ...

  5. 基于Hadoop(M/R)的MySQL到Oracle海量数据切割

    # 背景介绍 大数据时代,海量数据的迁移会很普遍地出现在各个应用场景,本文主要讨论利用Sqoop的分布式能力从关系型数据库MySQL到Oracle的海量数据迁移和切割. # 所需环境 1 JDK+Ec ...

  6. MySQL show processlist说明

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  7. phalcon——访问控制列表ACL

    一个完整的使用实例(将acl封装成一个插件使用): use Phalcon\Acl; use Phalcon\Acl\Role; use Phalcon\Acl\Resource; use Phalc ...

  8. 汇总一些知名的 JavaScript 开发开源项目

    汇总一些知名的 JavaScript 开发开源项目   转自:CTOLib , www.ctolib.com/topics-107352.html ggraph - 图形可视化的凌乱数据 这是一个建立 ...

  9. 2017web前端面试总结

    2017web前端面试总结 从今年3月份开始面试笔试找实习找校招到现在也半年多了,拿到了不少offer,也有了自己的一点心得体会,这里写出来分享一下,拙见勿喷. 注意一下,以下的观点仅代表我个人的体会 ...

  10. Hello Kiki(中国剩余定理——不互质的情况)

    Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...