10. 管理Apache ZooKeeper配置
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.preAllocSizeJava系统属性设置块大小预先分配给事务日志文件。 默认块大小是64 MB。 预先分配事务日志会使磁盘搜索最小化。 如果经常使用快照,则事务日志可能不会增长到64 MB。 在这种情况下,我们可以调整此参数来优化存储使用情况。 - snapCount:
zookeeper.snapCountJava系统属性提供了两个连续快照之间的事务数。在snapCoun指定的时间后,事务被写入到一个logfile文件,会启动一个新的快照,并创建一个新的事务日志文件。快照是一个性能敏感的操作,因此,对snapCount有一个较小的值可能会对ZooKeeper的性能产生负面影响。snapCount参数的默认值为100,000。 - traceFile:
requestTraceFileJava系统属性设置此选项以启用将请求记录到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配置的更多相关文章
- Mac Apache ZooKeeper 配置
1.配置准备工作 1)配置 ZooKeeper 准备工作 下载相关软件 apache-zookeeper-v3.4.10.zip ZooKeeper 官网 ZooKeeper 配置软件下载地址,密码: ...
- Apache ZooKeeper在Kafka中的角色 - 监控和配置
1.目标 今天,我们将看到Zookeeper在Kafka中的角色.本文包含Kafka中需要ZooKeeper的原因.我们可以说,ZooKeeper是Apache Kafka不可分割的一部分.在了解Zo ...
- 在 Linux 多节点安装配置 Apache Zookeeper 分布式集群
规划: 三台物理服务器就形成了(法定人数).对于高可用性集群,您可以使用高于3的任何奇数.例如,如果设置5台服务器,则集群可以处理两个故障节点等. 物理服务器需要开启的端口 2888 , 3888 和 ...
- 线上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 ...
- win 10下Apache和PHP的安装配置
一.下载Apache 官网下载:https://httpd.apache.org/ 或者百度网盘链接:https://pan.baidu.com/s/17zVFNSfzzwDgFti_fboUSA 提 ...
- 2.动手实操Apache ZooKeeper
Tips 做一个终身学习的人! 日拱一卒,功不唐捐. 在本节中,我们将讲解如何下载并安装Apache ZooKeeper,以便我们可以直接开始使用ZooKeeper. 本部分旨在通过提供详细的安装和使 ...
- Apache ZooKeeper 单机、集群部署文档
简介: Apache ZooKeeper 是一个分布式应用的高性能协调服务,功能包括:配置维护.统一命名.状态同步.集群管理.仲裁选举等. 下载地址:http://apache.fayea.com/z ...
- Apache ZooKeeper Getting Started Guide 翻译
ZooKeeper 開始向导 開始:用zookeeper协调分布式程序 单例操作 管理zookeeper存储 连接zookeeper 执行zookeeper 以复制模式执行zookeeper 其他优化 ...
- Zookeeper 配置和原理探究
一 Zookeeper是什么? 服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,那么这些信息如何推送到各个节点?并且保证信息的一致性和可靠性?我们知道分布式协调服务很难正确 ...
随机推荐
- 为什么阿里的程序员那么帅?---原来他们都有"编码规约扫描"神器在手
为了迎接十九大的到来,帝都城这几天也是满城风雨,听说早高峰期地铁站的人都排到天桥上了,哎,这就是该死的北漂生活.但是无论怎样,我依然在北京向各位问好! 之前总结过俩篇关于阿里Java开发手册的编程规约 ...
- WPF 快捷键读写txt
因为git提交需要写这次做的,所以我想弄个东西来帮我写 WPF可以使用快捷键,快捷键主要使用InputBindings,WPF读写文件很简单 我每次都要写 第一句标题 之后就是我写的修改 然后加上我名 ...
- C#委托
关于什么是委托,委托如何使用,我在这里就不说了. 需要说的: 委托是函数指针链 委托的 BeginInvoke 委托如果出现异常,会如何 如果不知道函数指针,可以继续往下看,我来告诉大家,为何需要委托 ...
- Linux 可运行进程 Runnable Process Definition
From : http://www.linfo.org/runnable_process.html 一个可运行的进程是指该进程的进程状态为TASK_RUNNING. 进程,也可被称为任务,是指一个程序 ...
- C++点滴20130802
1.sprintf与printf,fprintf为三兄弟.其中printf输出到屏幕,fprintf输出到文件,而sprintf输出到字符串中.通常情况下,屏幕是可以输出的,文件也可以写的(除非磁盘满 ...
- 自学spring AOP
本人是一个编程新手也是第一次写博客 这篇文章是我结合网上的资料和一些书籍学的 如果有不对之处请留言告知 本文介绍了AOP的两个知识点 1: 代理 代理有两种 我先写:Java静态代理 1:建立一个接口 ...
- 使用Aspose.Cells利用模板导出Excel(C#)
前言 随着互联网的流行,web项目逐渐占据主流.我相信大部分人开发项目的过程中都写过上传以及导出Excel和Word的功能,本文仅讨论导出Excel.C#中有很多第三方组件支持导出Excel,比如:N ...
- Java基础总结--流程控制
Java流程控制* 顺序结构--最常见的执行情况,语句按照出现的先后次序依次执行.* 判断结构--对条件进行判断,执行相应的语句.有三种常见的形式< if(判断条件){语句;}--为真执行语句, ...
- c++学习笔记---06--- 函数的重载
函数的重载 函数的重载 C++ 里的函数重载(overloading)机制比我们此前见到的东西都高深,这种语言的灵活性和强大功能在它身上体现得淋漓尽致. 所谓函数重载的实质就是用同样的名字再定义一个有 ...
- AngularJS学习篇(七)
AngularJS 过滤器 过滤器可以使用一个管道字符(|)添加到表达式和指令中. <!DOCTYPE html> <html> <head> <meta c ...