在ZooKeeper中,创建节点时可以通过设置createMode
属性来指定节点的类型。ZooKeeper提供了三种节点类型:
- 持久节点(Persistent):无论ZooKeeper服务器重启与否,该节点都会存在。
- 临时节点(Ephemeral):当创建临时节点的会话(session)结束时,该节点会自动删除。
- 顺序节点(Sequential Persistent):持久节点的一种特殊形式,当创建顺序节点时,ZooKeeper会自动为节点添加一个自动递增的序号。
要设置createMode
属性,可以使用ZooKeeper的create
方法,将createMode
作为参数传递。以下是一个Java示例,展示了如何在ZooKeeper中创建一个持久节点:
import org.apache.zookeeper.*; public class ZooKeeperCreateExample { public static void main(String[] args) throws Exception { // 连接到ZooKeeper服务器 ZooKeeper zk = new ZooKeeper("localhost:2181", 3000, new Watcher() { @Override public void process(WatchedEvent event) { System.out.println("Receive watched event: " + event); } }); // 创建一个持久节点 String path = "/myNode"; byte[] data = "https://www.yisu.com/ask/My data".getBytes(); CreateMode createMode = CreateMode.PERSISTENT; zk.create(path, data, ZooDefs.Ids.OPEN_ACL_UNSAFE, createMode); System.out.println("Created persistent node: " + path); // 关闭与ZooKeeper服务器的连接 zk.close(); } }
在这个示例中,我们使用CreateMode.PERSISTENT
设置了createMode
属性,从而创建了一个持久节点。其他类型的节点可以通过更改createMode
参数的值来创建,例如CreateMode.EPHEMERAL
(临时节点)和CreateMode.SEQUENTIAL
(顺序节点)。