Zookeeper安装以及配置说明(三)
Zookeeper的安装和配置非常的简单,既可以配置成单机模式,也可以配置成集群模式。如下图所示:
下面将分别进行介绍:
单机模式
下载最新稳定版本zookeeper的安装包之后(看第一篇博文), 解压到合适目录. 进入zookeeper目录下的conf子目录, 修改zoo_sample.cfg示例文件,改名zoo.cfg。不修改任何配置,运行bin目录下的启动命令即可(windows环境运行zkServer.cmd,linux环境运行zkServer.sh)。
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
以window为例,启动成功界面:
我们可以看到启动成功之后,会打印所有的环境信息。如上图所示。
参数说明:
- tickTime: 以毫秒为单位,用来控制心跳和超时,默认情况超时的时间为两倍的tickTime
- dataDir: 数据目录用于存储快照文件。 可以是任意目录。
- dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置。
- clientPort: client连接zookeeper的监听端口号。
其他配置项:
- initLimit 设定允许所有follower与leader进行连接并同步的时间,如果在设定的时间段内,半数以上的follower未能完成同步,leader便会宣布放弃领导地位,进行另一次的领导选举。如果zk集群环境数量确实很大,同步数据的时间会变长,因此这种情况下可以适当调大该参数。默认为10
- syncLimit 设定允许一个follower与一个leader进行同步的时间,如果在设定的时间段内,follower未完成同步,它将会被集群丢弃。所有关联到这个follower的客户端将连接到另外一个follower。
- maxClientCnxns 限制连接到zookeeper的客户端数量,并且限制并发连接数量,它通过ip区分不同的客户端,默认值为60。
- minSessionTimeout和maxSessionTimeout 最小会话超时时间和最大的会话超时时间,在默认情况下,最小的超时时间为2倍的tickTime时间,最大的会话超时时间为20倍的会话超时时间,系统启动时会显示相应的信息。默认为-1。(高版本,此配置已经去掉了)
从3.4.0开始,zookeeper提供了自动清理snapshot和事务日志的功能。
- autopurge.snapRetainCount,autopurge.purgeInterval
客户端在与zookeeper交互过程中会产生非常多的日志,而且zookeeper也会将内存中的数据作为snapshot保存下来,这些数据是不会被自动删除的,这样磁盘中这样的数据就会越来越多。不过可以通过这两个参数来设置,让zookeeper自动删除数据。autopurge.purgeInterval就是设置多少小时清理一次。而autopurge.snapRetainCount是设置保留多少个snapshot,之前的则删除。
不过如果你的集群是一个非常繁忙的集群,然后又碰上这个删除操作,可能会影响zookeeper集群的性能,所以一般会让这个过程在访问低谷的时候进行,但是遗憾的是zookeeper并没有设置在哪个时间点运行的设置,所以有的时候我们会禁用这个自动删除的功能,而在服务器上配置一个cron,然后在凌晨来干这件事。
至此, zookeeper的单机模式已经配置好了.
集群模式
集群模式,又分为伪集群模式和集群模式,他们的配置基本一样,只是单个机器和多个机器的区别。
由于集群模式下, 各server部署在不同的机器上, 因此各server的conf/zoo.cfg文件可以完全一样。
在集群模式中有一个重要配置就是myid。
配置-myid
在dataDir里会放置一个myid文件,里面就一个数字,用来唯一标识这个服务。这个id是很重要的,一定要保证整个集群中唯一。zookeeper会根据这个id来取出server.x上的配置。比如当前id为1,则对应着zoo.cfg里的server.1的配置。而且在后面我们介绍leader选举的时候,这个id的大小也是有意义的。
如果大家觉得还是不会安装,可以看一下推荐其他安装文章:
总结
Zookeeper的安装非常的简单,大家直接按照教程操作即可,下篇博客我们会使用命令行操作一下zookeeper。
最新文章
- JDBC、DAO
- 【OpenJ_POJ C16D】Extracurricular Sports(构造,找规律)
- 自己用node.js 搭建APP服务器,然后用AFNetworking 请求 报如下错误:App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure. Temporary exceptions can be configured via your app's Info.
- 2014中国软件开发者调查(二):Java、.NET、Web、云计算特点
- Android开发(三十二)——延时
- VS 高亮显示不带后缀的C++头文件
- linux服务之vnc和x2go
- [转载]JS中如何定义全局变量
- MMC卡是什么
- Java数据结构与算法(1) - ch02有序表(OrderedArray)
- JS 函数作用域及变量提升那些事!
- 2019/1.7 js面向对象笔记
- windows10 专业版的远程服务器管理工具下载
- Hexo重装小结
- Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(
- Split Array Largest Sum LT410
- Postman中使用post方式调用接口
- 使用plumbing命令来深入理解git add和git commit的工作原理
- GO环境变量设置
- open_input_file函数调用结构图(转)
热门文章
- Activiti工作流的应用示例
- error: Failed to start domain lb error: Failed to activate service 'org.freedesktop.machine1': timed out 报错的解决办法
- 使用uwsgi配置django
- Kubernetes 1.5集成heapster
- GetVersionEx 正确获取windows10版本
- Java基础-异常(Exception)处理
- Mongodb 笔记03 查询、索引
- bzoj千题计划119:bzoj1029: [JSOI2007]建筑抢修
- 查看和修改linux系统时间
- Composer 自动加载(autoload)机制