0


分布式调度Zookeeper常用Shell命令【云原生】

文章目录

Zookeeper概述

1. zookeeper是什么?

  • Zookeeper是一个分布式协调服务,致力于为分布式应用提供一个高性能、高可用、且具有严格顺序访问控制能力的分布式协调存储服务。
  • 分布式应用程序可以基于Zookeeper做:数据发布与订阅(即:服务发现)、配置管理、分布式协调与通知、集群管理、Leader选举、分布式锁等。
  • Zookeeper提供了一个类似于Linux文件系统的树形结构,同时提供了对每个节点的监控与通知机制。 - Zookeeper不适合存储大量文件或大文件;- 因为znode节点存储数据大小限制默认为1MB。- 官方说明ZK是用来存储KB级别的相关数据

如果zk客户端发送的znode数据大小超过1MB的设置会怎样?

  • 假如我们修改了ZK客户端的maxBuffer限制,使其可以发送超过1MB的数据,不过服务端的配置默认还是1MB-Djute.maxbuffer=10485760- 会导致主从同步过程中,所有的follower全部同步失败;- 从而造成状态不一致后的follower挂掉,最终leader认为follower都丢失之后,自己可能也不正常;- 于是,会重新进行选举,但只有自己又无法选举,进而ZK集群挂掉。

2. Zookeeper诞生的目的是什么?

  • 高性能- 将全量数据存储在内存中,并直接服务于客户端的所有非事务请求,尤其适用于以读为主的应用场景。
  • 高可用- 以集群的方式对外提供服务。- 若集群中一半的机器可以正常工作,则这个集群就能正常对外提供服务。
  • 严格顺序执行- 对于来自客户端的每个更新请求,Zookeeper都会分配一个全局唯一的递增编号。- 这个编号反映了所有事务操作的前后顺序。

常用命令

1. 新增节点

# -s 为有序节点, -e 临时节点
create [-s][-e] path data

创建持久化节点并写入数据:

create /hadoop "123456"

创建持久化游戏节点,此时创建的节点名为指定节点名+ 自增序号

create -s /a "aaa"
create -s /b "bbb"

创建临时节点,临时节点会在会话过期后被删除

create -e /aa "aaaa"

创建临时有序节点,临时节点会在会话过期后被删除

create -s -e /aa "aaaa"

2. 更新节点

每次修改成功后,版本号会自动+1,初始为0

set /hadoop "hadoop"

也可以基于版本号进行更改,类似于乐观锁机制,当传入的数据版本号和当前节点的数据版本号不符合时,zookeepr会拒绝本次修改。

set /hadoop "123321"1

3. 删除节点

# version 为版本号
delete path [version]

如果path有子节点,那么delete命令无法删除,需要使用rmr path进行递归删除

rmr /a

4. 查看节点

get path
cZxid = 0xe0 # 数据节点创建时的事务ID
ctime = Thu Aug 1321:39:50 CST 2020# 数据接地那创建时的时间
mZxid = 0xe0 # 数据节点最后一次更新时的事务ID
mtime = Thu Aug 1321:39:50 CST 2020# 数据节点最后一次更新时的时间
pZxid = 0xe1 # 数据节点的子节点最后一次被修改时的事务ID
cversion =1# 子节点的更改次数
dataVersion =0# 节点数据的更改次数
aclVersion =0# 节点的ACL的更改次数
ephemeralOwner = 0x0 # 如果节点是临时节点,则表示创建该节点的会话的SessionID,如果节点是持久节点,则该属性值为0.
dataLength =3# 数据内容的长度
numChildren =1# 数据节点当前的子节点个数

4. 2 查看节点状态

# 查看节点状态,不包含节点数据stat path

4.3 查看节点列表

# 列出path的所有子节点ls path
# 列出path的所有子节点和path的信息
ls2 path

5. 监听器

5.1 监听器get path [watch]

使用get path[warch] 注册的监听器能够在节点内容发生改变的时候,向客户端发出通知。注:Zookeeper的触发器是一次性的(One-time trigger),即触发一次就会立即失效。

# 在第一个窗口
get /hadoop watch# 在另外一个窗口set /hadoop 345# 第一个窗口出现监视信息
WatchedEvent state:SyncConnected type:NodeDataChanged path:/hadoop

5.2 监听器stat path [watch]

使用stat path [watch] 注册的监听器能够在节点状态发生改变的时候,向客户端发送通知。

# 在第一个窗口stat /hadoop watch# 在另外一个窗口set /hadoop 12212# 在第一个窗口出现监视信息
WatchedEvent state:SyncConnected type:NodeDataChanged path:/hadoop

5.3 监听器ls/ls2 path [watch]

使用ls/ls2 path [watch] 注册的监听器能够监听该节点下的所有子节点的增加和删除操作。

# 在第一个窗口ls /hadoop watch# 在另外一个窗口
create /hadoop/saint "aaa"# 在第一个窗口出现监视信息
WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/hadoop

本文转载自: https://blog.csdn.net/Saintmm/article/details/126574475
版权归原作者 秃秃爱健身 所有, 如有侵权,请联系我们删除。

“分布式调度Zookeeper常用Shell命令【云原生】”的评论:

还没有评论