一,zookeeper中日志的配置

1,快照文件snapshot的目录:

dataDir=/data/zookeeper/data

存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里

所以我们建议指定dataLogDir

2,事务日志的目录

dataLogDir=/data/zookeeper/datalogs

事务日志输出目录,不建议和快照文件写在一个目录下

3,日志清理

ZooKeeper 默认不会自动清理 tx log,总有一天你会遇到磁盘空间耗尽。

可以开启自动清理机制

autopurge.snapRetainCount=300autopurge.purgeInterval=72

#autopurge.purgeInterval=1

自动清理事务日志和快照文件的功能

这个参数是清理频率,单位是小时

默认值是0,表示不开启自动清理功能

#autopurge.snapRetainCount=3

自动清理事务日志和快照文件:保留的文件数量,默认值是保留3个

4,日志的手动清理命令

如果zookeeper集群访问量较高,清理会影响性能,可以手动清理

手动清理文件的例子:

#-n 3 表示保留3个文件

[root@zk1 bin]# /usr/local/soft/apache-zookeeper-3.6.0-bin/bin/zkCleanup.sh -n 3

也可以放到crond中按时间计划执行

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,zookeeper中客户端相关配置

1,客户端连接 Zookeeper 服务器的端口

clientPort=2181

端口端和zookeeper连接时,zookeeper使用的端口,防火墙要放开此端口供客户端访问

2,客户端的并发连接数限制

maxClientCnxns=300

官方说明:

maxClientCnxns : (No Java system property) Limits the number of concurrent connections (at the socket level) that a single client,

identified by IP address,

maymaketo a single member of the ZooKeeper ensemble.

This is used to prevent certain classes of DoS attacks,

includingfiledescriptor exhaustion.

The default is60. Setting this to 0 entirely removes the limit on concurrent connections

对一个客户端的连接数限制,默认值是60

将它设置为0表示取消对并发连接的限制

这个值过低会在日志中出现:too many connections from host - max is 60

可以视实际连接的情况进行调整

3,关闭启动内置的管理器

admin.enableServer=false

避免启动内置的管理器,也避免占用8080端口

三,zookeeper集群的配置

1,tickTime

tickTime=2000

Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

tickTime以毫秒为单位

默认值:2000

保持默认值即可,无需修改

2,initLimit:LF初始通信时限

initLimit=10

集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)

表示允许 follower连接 并同步到  leader 的初始化连接时间,它以 tickTime 的倍数来表示。

当超过设置倍数的 tickTime 时间,则连接失败

在设定的initLimit时间长度内,如果半数以上的跟随者不能完成同步,领导者便会放弃领导地位,进行另一次的领导选举。

如果zk集群环境数量很大则同步数据的时间会变长,这种情况下可以适当调大该参数。

默认为10

3,syncLimit:LF同步通信时限

syncLimit=5

集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)

表示 leader 与 follower 之间发送消息,请求 和 应答 时间长度。

如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被集群丢弃

默认值是5

4,cluster成员列表

#cluster

server.1=172.18.1.1:2888:3888server.2=172.18.1.2:2888:3888server.3=172.18.1.3:2888:3888

server.A = B:C:D

A:zookeeper服务器的序号,即第几号服务器.

注意这个序号要与zookeeper的myid保持一致

B:服务器的 IP 地址

C:服务器跟随者follower与集群中的 Leader 服务器交换信息的端口

D:如果集群中的 Leader 服务器宕机,需要一个端口通信重新进行选举,选出一个新的 Leader。

这个端口就是用来做leader选举的端口

四,为zookeeper的运行配置JVM参数

vi zkEnv.sh

修改:SERVER_JVMFLAGS一行为:

export SERVER_JVMFLAGS="-Xmx2048m -Xms2048m"

说明:这两个参数的作用,

Xmx  :程序运行期间最大可占用的内存大小,

如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出  OutOfMemory异常

Xms  : 程序启动时占用内存大小

此值可以设置与-Xmx相同,

以避免每次垃圾回收完成后JVM重新分配内存

应设置为多少?

Xmx     默认是物理内存的1/4,

最大建议不超过物理内存的3/4

所以如果没有其他应用同时运行的话,

可以设置为物理内存的1/2再观察调整

五,用jmx监控集群:

1,在zookeeper的conf目录下新建java.env

[root@zk1 conf]# vi java.env

内容:

JMXHOSTNAME="172.18.1.1"JMXPORT=8899

说明:JMXHOSTNAME的值是当前服务器的ip

2,修改zkServer.sh

echo "ZooKeeper remote JMX log4j set to $JMXLOG4J" >&2

下面的

ZOOMAIN="-Dcom.sun.management.jmxremote

jmxrmote后面添加:

-Djava.rmi.server.hostname=$JMXHOSTNAME

3,添加完成后,重启服务:

[root@zk1 conf]# systemctl stop zookeeper

[root@zk1 conf]# systemctl start zookeeper

4,启动jconsole,

在远程进程处输入:

172.18.1.1:8899

(说明:这里输入的是远程进程的ip地址和端口)

然后点连接

进入后:

mbean->org.apache.ZooKeeperService

可以看到下面的服务:

例子如图:

六,查看zookeeper版本

[root@zk1 ~]# echo stat|nc 127.0.0.1 2181Zookeeper version:3.6.0--b4c89dc7f6083829e18fae6e446907ae0b1f22d7, built on 02/25/2020 14:38 GMT

zookeeper java.env_zookeeper在生产环境中的配置(zookeeper3.6)相关推荐

  1. webpack上线版(生产环境中推荐使用)

    配置上线版(生产环境)webpack: 实际中将开发环境中和生产环境中打包配置是分开的,两者本质没太大区别,只是生产环境中的webpack打包配置要更加优化合理,下面将具体介绍一下生产环境中webpa ...

  2. 在java.library.path中找不到允许在生产环境中实现最佳性能的基于APR的Apache Tom.....

    在java.library.path中找不到允许在生产环境中实现最佳性能的基于APR的Apache Tom- 2021-6-2 19:55:17 org.apache.catalina.core.Ap ...

  3. Sentinel(十五)之在生产环境中使用 Sentinel

    转载自  在生产环境中使用 Sentinel 引言 Sentinel 目前已可用于生产环境,除了阿里巴巴以外,也有很多企业在生产环境中广泛使用 Sentinel. 生产环境的 Sentinel Das ...

  4. 在生产环境中使用 Sentinel

    文章目录 一.安装zookeeper 1. linux环境 2. windows环境 2. 安装并启动zkui 二.编译打包 2.1. 拉取项目 2.2. 启动 2.3. 登录 sentinel 2. ...

  5. Dubbo Mesh 在闲鱼生产环境中的落地实践

    本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是"借力开源. ...

  6. 写一段代码提高内存占用_记录一次生产环境中Redis内存增长异常排查全流程!...

    点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达 最近 DBA 反馈线上的一个 Redis 资源已经超过了预先设计时的容量,并且已经进行了两次扩容,内存增长还在持续中,希望业务方排查一下容量 ...

  7. 云端设计平台Coohom在生产环境中使用istio的经验与实践

    介绍 自从istio-1.0.0在今年发布了正式版以后,Coohom项目在生产环境中也开启了使用istio来作为服务网格. 本文将会介绍与分享在Coohom项目在使用istio中的一些实践与经验. C ...

  8. JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 千呼万唤始出来,在经历了整整一年的跳票之后,Java 9 终于在 9 月 21 日拨开云雾, ...

  9. java hotspot 默认垃圾回收器_怎么查看服务器默认的垃圾的收集器是哪个?生产环境上如何配置垃圾回收收集器?谈谈你对垃圾收集器的理解?...

    上篇:https://zhuanlan.zhihu.com/p/165998261​zhuanlan.zhihu.com 一.查看默认的垃圾收集器 1.如何查看默认的垃圾收集器 (1)代码演示: pa ...

最新文章

  1. 利用dom4j将实体类转换为对应的xml报文
  2. zabbix专题:第十二章 zabbix proxy分布式监控配置
  3. DataGridView控件60招(一)
  4. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验一】流水灯模块
  5. 【译】A Hitchhiker’s Guide to Consensus Algorithms
  6. 外部方法调用内部_私有属性和私有方法
  7. catia相合约束怎么反向_人是怎么不知不觉废掉的?进来,帮你
  8. CSS 文本溢出时显示省略标记
  9. Extjs grid 设置行字体颜色
  10. 实践GoF的23种设计模式:SOLID原则(上)
  11. activiti创建子流程_OA流程图绘制指南
  12. 安装卸载gitlab
  13. matlab仿真下载,MATLAB仿真 关于MATLAB建模仿真源程序 - 下载 - 搜珍网
  14. Redis5.0集群搭建(三主三从)、添加一主一从、JedisCluster连接集群
  15. 银河麒麟安装Wine
  16. 宁夏大学计算机科学与技术排名,2016宁夏自治区大学各学科门类最佳专业排行榜...
  17. 解决 required a bean of type ‘com.aliyun.oss.OSSClient‘ that could not be found
  18. 毁三观:从 onSavedInstanceState 中取值竟为空?!
  19. 为您的DC/DC 转换器选择最佳开关频率
  20. android微信小程序自动填表_微信“填表”类小程序,你可能根本没用对

热门文章

  1. 自己制作 SPx N合1 自动安装盘(x86)
  2. javascript的location/history
  3. Kraken采用CashAddr地址,BCH地址统一向前一步
  4. 【数据显示:比特币单日交易费用是BCH和BSV一年交易费用的4倍】
  5. 布赖恩·凯利看好比特币现金:更多的用例可以转化为价值
  6. 阿里云应用性能管理(APM)产品-应用实时监控服务(ARMS)技术解密 资料下载...
  7. [JZOJ] 5837.Omeed
  8. TinyKing的博客园
  9. qtcreator cannot find -lts
  10. Linux内存管理-高端内存(一)