Zookeeper安装以及配置说明(三)

2021-01-28 20:34:02 浏览数 (1)

Zookeeper的安装和配置非常的简单,既可以配置成单机模式,也可以配置成集群模式。如下图所示:

下面将分别进行介绍:

单机模式

下载最新稳定版本zookeeper的安装包之后(看第一篇博文), 解压到合适目录. 进入zookeeper目录下的conf子目录, 修改zoo_sample.cfg示例文件,改名zoo.cfg。不修改任何配置,运行bin目录下的启动命令即可(windows环境运行zkServer.cmd,linux环境运行zkServer.sh)。

代码语言:javascript复制
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分布式集群安装

总结

Zookeeper的安装非常的简单,大家直接按照教程操作即可,下篇博客我们会使用命令行操作一下zookeeper。

0 人点赞