zookeeper安装
zookeeper系列
配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
1)tickTime =2000:通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)
2)initLimit =10:LF初始通信时限
集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
3)syncLimit =5:LF同步通信时限
集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
4)dataDir:数据文件目录+数据持久化路径
主要用于保存Zookeeper中的数据。
5)clientPort =2181:客户端连接端口
监听客户端连接的端口。
zookeeper节点类型
ZooKeeper中的节点类型主要可以分为以下几种:
一、基本节点类型
持久节点(Persistent)
一旦创建,除非显式删除,否则节点将一直存在于ZooKeeper中。
即使创建节点的客户端断开连接,节点也不会被删除。
适用于存储永久性数据,如配置信息等。
临时节点(Ephemeral)
节点的生命周期与创建它的客户端会话(session)绑定。
如果创建临时节点的客户端会话结束(例如客户端与ZooKeeper服务器的连接断开),那么该节点就会被自动删除。
适用于表示临时状态或临时任务,如分布式锁释放、健康检查等。
二、顺序节点类型
ZooKeeper在基本节点类型的基础上,还可以添加顺序性特性,形成顺序节点类型。顺序节点在创建时,ZooKeeper会自动在节点名称后面添加一个单调递增的序号,这个序号用于保持节点的顺序。
持久顺序节点(Persistent Sequential)
结合了持久节点和顺序节点的特点。
创建后不会被自动删除,除非显式删除。
适用于需要保持顺序性的场景,如分布式系统中的节点注册。
临时顺序节点(Ephemeral Sequential)
结合了临时节点和顺序节点的特点。
创建时自动添加递增的序号,且在创建它的客户端会话结束后自动删除。
常用于实现分布式队列或分布式锁。
三、其他节点类型(ZooKeeper 3.5及更高版本)
容器节点(Container)
在ZooKeeper 3.5及更高版本中引入。
容器节点的表现形式和持久节点相似,但有一个特殊的线程会扫描所有的容器节点。
当发现容器节点的子节点数量为0时,会自动删除该节点。
适用于leader选举、锁等场景。
持久TTL节点和持久顺序TTL节点
这类节点在创建时可以指定一个存活时间(TTL)。
如果该节点下面没有子节点,并且超过了TTL指定时间,那么该节点就会被自动删除。
需要额外的配置(如zookeeper.extendedTypesEnabled设置为true)才能使用TTL节点。
zookeeper本地模式安装部署
1)安装前准备
1)安装Jdk
(2)拷贝Zookeeper安装包到Linux系统下
(3)解压到指定目录
tar -zxvf zookeeper-3.4.11.tar.gz -C /opt/apps/
2)配置修改
(1)将/opt/apps/zookeeper-3.5.7/conf这个路径下的zoo_sample.cfg修改为zoo.cfg
mv zoo_sample.cfg zoo.cfg
2)打开zoo.cfg文件,修改dataDir路径:
vim zoo.cfg修改如下内容:dataDir=/opt/apps/zookeeper-3.4.1/zkData
mkdir zkData
3)操作Zookeeper
(1)启动Zookeeper
(2)查看进程是否启动
jps4020 Jps4001 QuorumPeerMain
(3)查看状态:
(4)启动客户端:
(5)退出客户端:quit
(6)停止Zookeeper
领取专属 10元无门槛券
私享最新 技术干货