我正在尝试将 Apache Curator 与 dockerized zookeeper 实例一起使用,无论我如何尝试连接,我总是以
org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for...
错误。我已经尝试理解文档,但我没有得到任何结果。我已登录 zookeeper CLI 并确保端口号正确:
snerd@powerglove:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31f1093495ba compose_zookeeper "/opt/zookeeper/bin/ 3 weeks ago Up About a minute 0.0.0.0:32770->2181/tcp,
0.0.0.0:32769->2888/tcp, 0.0.0.0:32768->3888/tcp zookeeper
这是我尝试使用的代码:
public class App {
public static void main( String[] args ) {
CuratorFramework client = CuratorFrameworkFactory.newClient("0.0.0.0:32770", new RetryUntilElapsed(3000, 1000));
client.start();
try {
client.create().forPath("/larry-smells/foop", "tuna?".getBytes());
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
据我从策展人入门页面可以看出,这应该可行。我错过了什么?
edit1 刚刚发现我能够从 zookeeper 合奏中提取数据:
System.out.println(new String(curatorFramework.getData().forPath("/larry-smells")));
但创建命令仍在爆炸。
编辑2
错误的堆栈跟踪:
org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = org.apache.zookeeper.KeeperException.create(KeeperException.java:103) 的 /larry-smells/foop 在 org.apache.zookeeper.KeeperException.create(KeeperException. java:51) 在 org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1297) 在 org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1040) 在 org.apache.curator。 framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1023) at org.apache.curator.connection.StandardConnectionHandlingPolicy.callWithRetry(StandardConnectionHandlingPolicy.java:67) at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:99 ) 在 org.apache 的 org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:1020)。curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:501) at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:491) at org.apache.curator.framework.imps.CreateBuilderImpl$4 .forPath(CreateBuilderImpl.java:367) 在 org.apache.curator.framework.imps.CreateBuilderImpl$4.forPath(CreateBuilderImpl.java:309) 在 com.mycompany.app.App.main(App.java:35)主要(App.java:35)主要(App.java:35)