【发布时间】:2021-03-02 12:14:57
【问题描述】:
我正在尝试像这样在 Zookeeper 中创建一个“目录”:
curatorFramework = CuratorFrameworkFactory.newClient(
"ip-111-11-111-1.us-west-2.compute.internal/111.11.111.1:2181",
zkInfo.getSessionTimeoutMs(),
zkInfo.getConnectionTimeoutMs(),
new RetryNTimes(zkInfo.getRetryAttempts(),
zkInfo.getRetryIntervalMs())
);
curatorFramework.start();
byte[] byteArray = new byte[1];
byteArray[0] = (byte) 7;
curatorFramework.create()
.withMode(CreateMode.PERSISTENT)
.withACL(ZooDefs.Ids.OPEN_ACL_UNSAFE)
.forPath("/my_node", byteArray);
令人困惑的是,它在我尝试创建的节点上给了我一个“NoNodeException”。
Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /my_node
at org.apache.zookeeper.KeeperException.create(KeeperException.java:111) ~[stormjar.jar:?]
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[stormjar.jar:?]
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:783) ~[stormjar.jar:?]
at org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1176) ~[stormjar.jar:?]
at org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1156) ~[stormjar.jar:?]
at org.apache.curator.connection.StandardConnectionHandlingPolicy.callWithRetry(StandardConnectionHandlingPolicy.java:64) ~[stormjar.jar:?]
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:100) ~[stormjar.jar:?]
at org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:1153) ~[stormjar.jar:?]
at org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:607) ~[stormjar.jar:?]
at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:597) ~[stormjar.jar:?]
at org.apache.curator.framework.imps.CreateBuilderImpl$3.forPath(CreateBuilderImpl.java:362) ~[stormjar.jar:?]
at org.apache.curator.framework.imps.CreateBuilderImpl$3.forPath(CreateBuilderImpl.java:310) ~[stormjar.jar:?]
请注意,我可以连接到 Zookeeper:
Socket connection established to ip-111-11-111-1.us-west-2.compute.internal/111.11.111.1:2181, initiating session
Session establishment complete on server ip-111-11-111-1.us-west-2.compute.internal/111.11.111.1:2181, sessionid = 0x100000363b13354, negotiated timeout = 20000
请注意,Zookeeper 服务器位于远程机器上,并且该帖子中的 ip ("111.11.111.1") 已更改。
【问题讨论】:
标签: java apache-zookeeper apache-curator