2019独角兽企业重金招聘Python工程师标准>>>

当配置伪集群有3台服务实例时,只启动2台集群依然能够起来!因为达到了过半有效策略。

zoo.cfg

配置类->  集群: QuorumPeerConfig; 单机: ServerConfig.

  • electionAlg: 选举方法 默认3 FastLeaderElection ; 1 LeaderElection; 2 AuthFastLeaderElection
  • tickTime=2000:  ZK中的一个毫秒时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。默认3000
  • initLimit=10:   Leader接收集群确认NEWLEADER返回ack信息(Leader.waitForNewLeaderAck) 、 leader同步集群的选举周期epoch(Leader.getEpochToPropose) 时最长能忍受的心跳时间间隔数。
  • syncLimit=5 :标识 Leader 与 Follower 之间发送消息请求和应答最长时间数。运行过程中,Leader负责与ZK集群中所有机器进行通信。 eg: 通过心跳检测机制,来检测机器的存活状态。
  • dataDir=D:/Zookeeper_cluster/zookeeper-1/run/data: Zk 保存数据的目录
  • dataLogDir=D:/Zookeeper_cluster/zookeeper-1/run/log :  Zk 保存日志的目录。默认与dataDir一致。 尽量给事务日志的输出配置单独的磁盘或是挂载点,将极大的提升ZK性能
  • clientPort=2181 :  客户端连接的端口
  • maxClientCnxns=60 : 最大客户端并发连接数
  • autopurge.snapRetainCount=3: 设置保留多少个snapshot,之前的则删除

    autopurge.purgeInterval=1: 设置多少小时清理一次数据。

  • group.X=n:n:n : 对机器分组(X标识groupId, n 标识集群中的服务myid。都是数值类型)。 组必须是不相交的, 并且所有组联合后必须是 ZooKeeper 集群。 eg. group.1=1:2:3、group.2=4:5:6
  • weight.X=6 : 机器权重设置 。( X标识集群中的服务myid) eg. weight.1=1、 weight.2=1
  • peerType :  代表实例角色。默认是PARTICIPANT观察者为OBSERVER
  • server.X=A:B:C[:D]:
    • X: 一个数值表示第几号服务器;集群模式需在 dataDir 目录下配置一个文件 myid,该文件只有一个数据就是 X 的值,Zookeeper 启动时会读取文件判定是哪个服务器;
    • A: 服务器的 ip 地址 (在/etc/hosts文件中设置了<IP, hostName>映射后可设为hostName);
    • B: 当前服务器与集群中的 Leader 交换信息的端口;
    • C: 用来执行选举时服务器相互通信的端口。
    • D:   可选项。默认标识服务实例类型为PARTICIPANT观察者设置为OBSERVER。校验并覆盖peerType的值。

系统属性:

zookeeper.skipACL:  对所有客户端请求都不作ACL检查。即使之前节点上设置有权限限制,开启后也失效。  见:PrepRequestProcessor

zookeeper.forceSync: 定了写进去的数据是否应该sync到磁盘。默认值为yes,在数据被sync到磁盘之前,事务对应的ack不会被发送回leader。  见:FileTxnLog

jute.maxbuffer:代表了一个请求或响应最大的字节数。默认4MB。 见: ClientCnxn

readonlymode.enabled: 开启只读模式,只接受client的read操作。见: QuorumPeer、ServerCnxn

经验。

1、最小生产集群

要确保Zookeeper能够稳定运行,那么就需要确保投票能够正常进行,最好不要挂一个节点整个就不work了,所以一般要求最少5个节点部署,3个节点就只能挂1个了。

2、分Group,保护核心Group

将一个Zookeeper集群划分为多个小的Group,称Leader+Follower为核心Group,核心Group一般是不向外提供服务的,然后会根据不同的业务再加一些Observer,而Client只会连接分配给它的Observer Group,不去连接核心Group。这样核心Group就不会给Client提供长连接服务,也不负责长连接的心跳,这大大的减轻了核心Group的压力。对于写操作比较大的,需要按业务分离成多个集群。

3、日志清理

Zookeeper要频繁的写txlog以及定期dump内存snapshot到磁盘。虽然Zookeeper提供了清理这些文件的机制,但只能设置事件间隔清理,而不能设置具体的时间段。
所以建议将其关闭:autopurge.purgeInterval=0,然后使用crontab等机制,在业务低谷的时候清理。

4、默认日志zookeeper.out

默认的配置日志是不会轮转的,而且是直接输出到终端zookeeper.out 。Zookeeper会加载conf文件夹下一个名为zookeeper-env.sh的脚本(zkServer.sh 调用 zkEnv.sh,zkEnv.sh 调用 zookeeper-env.sh   ),所以可以写入定制化的配置:

#!/usr/bin/env bashJAVA_HOME= #java homeZOO_LOG_DIR= #日志文件放置的路径ZOO_LOG4J_PROP="INFO,ROLLINGFILE" #设置日志轮转JVMFLAGS="jvm的一些设置,比如堆大小,开gc log等"

5、地址

可以在/etc/hosts中设置hostName。zoo.cfg中配置hostName,若迁移直接修改hosts文件,还需要修改$JAVA_HOME/jre/lib/security/java.security文件里的networkaddress.cache.ttl=60,将其修改为一个比较小的数,刷新缓存。

转载于:https://my.oschina.net/u/3434392/blog/1475253

zookeeper 运维相关推荐

  1. zookeeper 运维管理

    2019独角兽企业重金招聘Python工程师标准>>> zookeeper 运维管理(转) link: http://blog.163.com/bdweizhong@yeah/blo ...

  2. zookeeper运维管理

    目录: 1.运维管理 2.淘宝的关于zookeeper的多篇文章: link:http://nileader.blog.51cto.com/1381108/1068033 zookeeper 运维管理 ...

  3. Zookeeper运维问题集锦

    实际工作中用到Zookeeper集群的地方很多, 也碰到过各种各样的问题, 在这里作个收集整理, 后续会一直补充; 其中很多问题的原因, 解决方案都是google而来, 这里只是作次搬运工; 其实很多 ...

  4. zookeeper版本更新_zookeeper介绍及运维实践

    Zookeeper介绍 首先介绍下Zookeeper的背景.数据类型.使用场景以及ZAB协议,让大家对Zookeeper有一个清晰的认识. Zookeeper概述 ZooKeeper是一个分布式的.开 ...

  5. zookeeper 运维管理手册

     1.部署 本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容: 1. 系统环境 2. 集群模式的配置 3. 单机模式的配置 系统环境和集群模式配置这两节内容大体讲述了如何部署一个能够用于 ...

  6. 一文运维zookeeper

    文章目录 1. zookeeper生产环境的安装配置 1.1 软件配置 1.2 硬件配置 1.3 日志配置文件 1.4 配置三节点的zookeeper集群 2. zookeeper的监控方法 2.1 ...

  7. 运维老鸟告诉你这个经典Zookeeper问题的根因

    来自:DBAplus社群 作者介绍 邹春华,新炬网络中间件专家.10年软件开发工作经验,9年运营商行业IT系统维护经验.精通C.C++.JAVA.PHP.SHELL等语言,有着深厚的大型IT软件系统开 ...

  8. ZooKeeper: 简介, 配置及运维指南

    1. 概览 ZooKeeper是一个供其它分布式应用程序使用的软件, 它为其它分布式应用程序提供所谓的协调服务. 所谓的协调服务, 是指ZooKeeper的如下能力 naming 命名 configu ...

  9. 大数据运维架构师培训(1):Zookeeper,Hadoop(HDFS,MR,Yarn)

    一.风哥大数据运维架构师实战培训专题2.0介绍 课程背景: 为满足想学习和掌握大数据运维与体系架构的学员,风哥特别设计的一套比较系统的大数据库运维培训课程. 课程目标: 本套风哥大数据运维架构师实战培 ...

最新文章

  1. [BTCC] 要“工程师”“工程师”“工程师”
  2. springmvc请求参数异常处理
  3. 数学之美:“植物身上的黄金分割”
  4. 阿里云天池 金融风控训练营Task1 广东工业站
  5. C++:基于范围的for循环
  6. P4878 道路修建-美国
  7. Selenium自动化测试-JavaScript定位
  8. 【C++ Primer】第十四章 C++中的代码重用
  9. python画圣诞树_python画圣诞树
  10. hibernate笔记4--qbc查询
  11. .Net Core Linux centos7行—.net core json 配置文件
  12. vbox NAT 设置端口映射(NAT+8080端口转发)
  13. PMP考试重点总结八——监控过程组(2)
  14. 第四章 Python数据预处理之划分训练集与测试集
  15. 游戏角色3d建模用什么软件
  16. linux快速解压缩,快速了解linux压缩与解压
  17. 初探GO中的反射机制
  18. SuperData:2016年VR行业总产值为27亿美元,表现不如预期
  19. windowsXP服务详解
  20. 第一章 计算机概要和技术

热门文章

  1. iis php cgi.exe 漏洞,IIS4\IIS5 CGI环境块伪造0day漏洞
  2. python线程监控配置文件_一日一技:Python多线程的事件监控
  3. php对象的三大特征,关于php中面向对象的三大特征(封装/继承/多态)
  4. ios android 发东西,Android、IOS主动发事件给React Native
  5. qt 中转化图片格式与大小的方法
  6. icloud连接服务器时出现问题_ios13 ipad/iphone与windows 连接传输文件显示连接服务器用户或密码无效解决方法...
  7. 【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》阅读笔记
  8. 【pip install psycopg2安装报错】Error: pg_config executable not found.
  9. An error occurred. connect() failed (111: Connection refused) while connecting to upstream
  10. MapReduce Java API实例-统计平均成绩