Zookeeper基础 - Znode的不同模式

优质
小牛编辑
124浏览
2023-12-01

持久化的和临时的

一个znode节点要么是持久化的要么是临时的。一个持久化的znode节点只能通过调用delete方法来删除。相对的,一个临时的znode节点会在创建它的客户端奔溃或者断掉与zookeeper的连接时自动删除。

临时zode节点的心智是只有当会话的创建者工作正常时,应用的某些部分必须存在。比如,master-worker例子中的master节点就是临时的。它的存在暗示着现在有一个master,并且它在运行中。如果master没有了而master节点还存在的话,那么系统就探测不到master奔溃了。这样会阻止系统继续运行,所以master节点必须和master一起消失。我们也可以用临时节点代表worker。如果一个worker不可用了,它的会话就会超时,同时它在\/workers下面的节点也会自动消失。

一个临时节点会在以下两种情况下被删除:

  • 当一个客户端删除它,不一样要是创建者。

顺序化节点

一个znode节点可以被设置为顺序化的。一个顺序化节点可以被设置为唯一的、单调递增的int值。顺序号被追加在创建znode节点的路径后面。例如,如果一个客户端创建了一个以\/tasks\/task-开通的顺序节点,zookeeper会为它指派一个顺序号,比如说1,并把它追加到路径的后面。那么这个节点的路径就变为了\/tasks\/task-1.顺序节点提供了一种创建拥有独一无二名字节点的方式,同时,也很容易看得出来创建的顺序。