四:ZooKeeper的集群,伪集群,单机的搭建
一:ZooKeeper服务安装包下载
第一步:打开zooKeeper官网
第二步:进入下载页
第三步:进入真正的下载页
第四步:选择ZooKeeper版本
第五步:复制下载的地址
第六步:将本地的压缩包上传到服务器目录
二:zookeeper集群模式配置
【1】zookeeper/cnfg/zoo_sample.cfg
复制一份样例文件,将配置写在zoo.cfg中.集群中所有节点的该目录下都要放置相同的配置文件
#dataDir=/var/zookeeper
存储zookeeper快照文件的目录,要在liunx该目录下创建zookeeper目录
#clientport=2181
zookeeper服务器对外提供服务的端口号
#server.ID=host:port1:port2
ID==>ZK集群中节点的id
host==>ZK集群中机器节点的ip地址
port1==>Follower和Leader通信端口
port2==>Leader服务器选举过程的集群的投票端口
#tickTime=2000
用于存储zookeeper集群中最小时间单元的长度,许多操作运行的时间间隔都是使用tickTime的倍数表示
#initLimit=10
就是tickTIme的10倍。新启动的Follower服务器和Leader服务器同步数据的最大时间限制。一般默认值。但随着数据增多,同步时间过长,这个需要做调整。他的时间长度为initLimit*tickTime的
#leaderServes
leader服务器是否否接收客户端的链接。默认是可以的,接收所有读写请求。在zookeeper架构中是起事务协调,数据同步工作协调。
#syncLimit=5
Leder服务器和Follower服务器心跳检测的延迟时间。
#cnxTimeout=5000
Leader选举过程中,各个服务器进行tcp链接的最大超时时间
#forceSync (yes或no)yes是写入
zookeeper是否在事务提交的时候强制将事务日志写入磁盘。
#jute.maxbuffer=1M
zookeeper单个数据节点上存储数据量的最大上限。
#skipACL(yes或no)yes是跳过
配置zookeeper服务器是否跳过acl权限检查
#dataLogDir
存储zookeeper的事务日志,默认是和快照文件写在一个目录下,要把他放在一个单独的目录,对zookeeper的事务处理能力有好处。
#globalOutstandingLimit
配置zookeeper最大请求堆积数,允许最大请求上限
#preAllocSize
用于配置zookeeper事务日志文件预分配的最大磁盘空间,一般64M
#snapCount
用于配置相邻两次数据快照之间,事务操作的次数。zookeeper在事务操作达到这些次数,进行一次事务快照。
#maxClientCnxns
用于配置,单个客户端对单个zooKeeper服务器的最大并发链接数。以ip地址的粒度来进行链接数的限制。如果配置为0表示无限制。
#clientPortAddress
用于那些多网卡的机器,允许为每个ip地址分配监控端口。
#maxSessionTimeout
服务端对客户端会话超时时间最大设置的限制。如果客户端在配置时,超过这个值,则被强制以这个值作为最大超时时间。
#fsync.warningthresholdms
用于配置zookeeper进行事务日志同步操作消耗时间的筏值。
#autopurge.snapRetainCount
zookeeper对历史事务日志,和快照的清除的支持,这个参数用于配置对事务日志,和快照文件保留的数量。最小配置是3。至少保留3个快照文件和3个事务日志文件
#autopurge.purgeInterval
历史文件清理的频率。如果=0,表示不清理。和上面参数配合使用。
#electionAlg
用于配置Leader的选举算法(无用。)
【2】在集群中所有机器节点的存放快照目录/var/zookeeper/下创建myid的文件
--->在某个机器节点该目录下的myid文件
--->并且在该myid文件中写入当前机器节点的ID(server.ID的ID值)
【3】启动服务器
--->cd /opt/zookeeper/bin/bin
--->./zkServer.sh start(启动服务器)
--->./zkServer.sh stop(关闭服务器)
【4】测试是否启动成功
--->telnet 启动zk机器节点ip 对外提供服务的端口号(telnet 192.168.1.105 2181)
--->stat
二:zookeeper伪集群模式配置
【1】伪集群模式(一台zookeeper机器伪造成集群)配置和集群模式配置差不多,在配置文件上有区别。
#server.ID=host:port1:port2
--->host的ip地址一样
--->follower和leader沟通的端口号不一样
--->leader选举端口号不一样
【2】文件快照存储和myid配置不变
三:zookeeper单机器模式配置
【1】单机模式(一台zookeeper机器)的配置在配置文件上有区别。
#server.ID=host:port1:port2
--->配置文件只保留其中一条记录就可以了。
【2】文件快照存储和myid配置不变
四:zookeeper的四字命令
【1】第一种方式使用四字命令
--->telnet 启动zk机器节点ip 对外提供服务的端口号(telnet 192.168.1.105 2181)
--->stat
【2】常用的四字命令
#echo stat | nc ip 端口号
===>zookeeper服务器状态信息,节点数,角色等。当前服务器的链接信息也打印出来
#echo conf | nc ip 端口号
===>zookeeper服务器的基本配置信息
#echo cons | nc ip 端口号
===>表示当前服务器上所有客户端的链接的详细信息,包括每个客户端的ip 地址,会话id,最后一次交互的操作类型
#echo crst | nc ip 端口号
===>重置所有客户端链接统计信息
#echo dump | nc ip 端口号
===>输出集群所有的会话信息,包活会话信息id,以及每个会话创建的临时节点的信息
#echo envi | nc ip 端口号
===>输出当前服务器所运行的环境信息
#echo ruok | nc ip 端口号
===>用于判断当前服务器是否正常运行的命令。
#echo srvr | nc ip 端口号
===>与stat相似,但不会数据客户端链接信息
#echo srst | nc ip 端口号
===>重置所有服务器的统计信息
#echo wchs | nc ip 端口号
===>当前服务器上watcher管理的概要信息
#echo wchc | nc ip 端口号
===>当前服务器上watcher的详细信息,以会话为单位进行分组显示
#echo wchp | nc ip 端口号
===>输出当前服务器上管理的watcher信息,以节点路径为单位进行分组显示
#echo mntr | nc ip 端口号
===>输出比stat命令更为详细的服务器统计信息。请求处理延迟情况,服务器内存数据库的大小,和集群数据同步情况。每一行都是key-value的信息