网站二级目录是什么,建设银行手机外汇网站,专业的网站建设排名,功能 wordpress.org文章目录 一、部署服务1.下载与安装2.查看并修改配置文件3.启动 二、基本概念与操作1.节点类型特性总结使用场景示例查看节点查看节点数据 2.文件系统层次结构3.watcher 一、部署服务
1.下载与安装
下载#xff1a;
一定要下载编译后的文件#xff0c;后缀为bin.tar.gz
w… 文章目录 一、部署服务1.下载与安装2.查看并修改配置文件3.启动 二、基本概念与操作1.节点类型特性总结使用场景示例查看节点查看节点数据 2.文件系统层次结构3.watcher 一、部署服务
1.下载与安装
下载
一定要下载编译后的文件后缀为bin.tar.gz
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz解压
targetUrl填目标安装目录
tar -zxf apache-zookeeper-3.8.4-bin.tar.gz targetUrl2.查看并修改配置文件
配置文件在解压目录下的/conf中提供了一个示范文件zoo_sample.cfg
# The number of milliseconds of each tick
tickTime2000
# The number of ticks that the initial
# synchronization phase can take
initLimit10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir/tmp/zookeeper
# the port at which the clients will connect
clientPort2181解析 tickTime2000这是 ZooKeeper 中最基本的时间单位以毫秒为单位。它用于心跳检测以及最小会话超时时间的计算。在这个例子中tickTime 被设置为 2000 毫秒即 2 秒。initLimit10这个参数定义了集群中的 follower 节点与 leader 节点进行初始同步的最大时间限制以 tickTime 为单位。例如如果 tickTime 是 2000 毫秒那么 initLimit 设置为 10 就意味着初始同步的最大时间是 20000 毫秒即 20 秒。syncLimit5这个参数定义了 follower 节点与 leader 节点之间发送请求和接收响应的最大时间限制同样以 tickTime 为单位。例如如果 tickTime 是 2000 毫秒那么 syncLimit 设置为 5 就意味着这个时间限制是 10000 毫秒即 10 秒。dataDir/tmp/zookeeper这个参数指定了 ZooKeeper 存储数据快照的目录。在生产环境中不建议使用 /tmp 目录因为 /tmp 目录可能会在系统重启时被清空。应该选择一个持久化的存储位置来存放数据。clientPort2181这个参数指定了客户端连接 ZooKeeper 服务的端口。默认情况下ZooKeeper 服务监听 2181 端口。 修改配置文件
# 复制一份
cp zoo_sample.cfg zoo.cfg
# 将dataDir/tmp/zookeeper这一行的目录修改为存储数据的目录
vim zoo.cfg3.启动
目前将zookeeper部署为单体结构的先不考虑集群。
在bin目录下执行以下命令
sh zkServer.sh start通过客户端进行连接
在bin目录下执行以下命令
./zkCli.sh -server localhost:2181二、基本概念与操作
1.节点类型
在 Apache ZooKeeper 中节点也称为 znode是存储数据的基本单元。ZooKeeper 支持多种类型的节点每种类型具有不同的特性和用途。 持久节点 (Persistent Node) 创建后不会自动删除除非显式地调用删除操作。示例命令./zkCli.sh -server localhost:2181 create /persistent-node data临时节点 (Ephemeral Node) 当创建该节点的客户端会话结束时节点会被自动删除。临时节点不能有子节点。示例命令./zkCli.sh -server localhost:2181 create -e /ephemeral-node data持久顺序节点 (Persistent Sequential Node) 创建时ZooKeeper 会在节点路径末尾自动添加一个递增的序列号。序列号是全局唯一的即使节点被删除后序列号也不会被重用。示例命令./zkCli.sh -server localhost:2181 create -s /persistent-sequential-node data临时顺序节点 (Ephemeral Sequential Node) 兼具临时节点和顺序节点的特性。当创建该节点的客户端会话结束时节点会被自动删除并且创建时会自动添加一个递增的序列号。示例命令./zkCli.sh -server localhost:2181 create -e -s /ephemeral-sequential-node data特性总结 持久节点 (Persistent Node): 不会自动删除。可以有子节点。适用于需要长期存在的数据。 临时节点 (Ephemeral Node): 客户端会话结束时自动删除。不能有子节点。适用于表示客户端的存在或状态。 持久顺序节点 (Persistent Sequential Node): 不会自动删除。创建时自动添加序列号。适用于需要唯一标识符的场景例如任务分配。 临时顺序节点 (Ephemeral Sequential Node): 客户端会话结束时自动删除。创建时自动添加序列号。适用于需要临时唯一标识符的场景例如临时任务分配。
使用场景示例 分布式锁 使用临时顺序节点实现分布式锁。每个客户端创建一个临时顺序节点通过比较节点的序列号来决定谁获得锁。 配置管理 使用持久节点存储配置信息所有客户端都可以读取这些配置。 服务发现 使用临时节点注册服务实例当服务实例宕机时对应的临时节点会被自动删除。 任务调度 使用持久顺序节点分配任务每个任务有一个唯一的序列号确保任务的唯一性和有序性。
查看节点
依次创建以上四种节点然后执行ls /命令可以看到创建的所有节点 查看节点数据
示例
get /ephemeral-node2.文件系统层次结构
在 Apache ZooKeeper 中节点znode可以形成一个层次结构类似于文件系统中的目录和文件。每个节点可以有父节点和子节点。
注意不能为临时节点创建子节点。
假设我们已经有了一个名叫persistent-node的父节点可以为它创建一个子节点
create /persistent-node/node1 node13.watcher
ZooKeeper 的 Watcher 机制是一种事件通知机制允许客户端在特定事件发生时收到通知。这对于实现分布式协调和同步非常有用。
Watcher 机制的工作原理 注册 Watcher客户端可以在创建节点、获取节点数据、列出子节点等操作时注册一个 Watcher。注册 Watcher 后当指定的事件发生时ZooKeeper 会向客户端发送一个通知。事件类型 NodeCreated节点被创建。 NodeDeleted节点被删除。 NodeDataChanged节点的数据发生变化。 ChildChanged节点的子节点列表发生变化。一次性通知 每个 Watcher 只触发一次。一旦触发客户端需要重新注册 Watcher 以继续接收后续的通知。