apache-zookeeper - 创建 znode 时导致 MARSHALLINGERROR 的原因是什么?

标签 apache-zookeeper

我正在使用我的 ZooKeeperNetEx nuget 包执行一个简单的 createAsync() 操作,它抛出由 MARSHALLINGERROR 触发的异常。

这是两行摘要(在这两行之间,已成功确认到 Zookeeper 的连接):

  var Zoo = new ZooKeeper("localhost:50002", 5000, new ClusterWatcher());
  . . .
  var parentNode = Zoo.createAsync("/election", null, null, CreateMode.PERSISTENT).Result 

我不明白。当然,ClusterWatcher 是我自己的从 Watcher 派生的类。是的,我是用 C# 写的,但这只是一件简单的事情,我认为这并不重要。如果重要的话,主机正在运行 Windows 10 Pro。

最佳答案

未指定 ACL 模式(您似乎传递了 null)可能会触发此异常。在 Java 中,您可以传递 ACL 模式的预定义列表 ZooDefs.Ids.OPEN_ACL_UNSAFE (例如,或该类中的其他列表之一);对于 C# 可能会有一个类似命名的常量。

在 Java 客户端库中,这是一个方便的常量,定义为:

/**
 * This is a completely open ACL .
 */
public final ArrayList<ACL> OPEN_ACL_UNSAFE = new ArrayList<ACL>(
        Collections.singletonList(new ACL(Perms.ALL, ANYONE_ID_UNSAFE))
);

关于apache-zookeeper - 创建 znode 时导致 MARSHALLINGERROR 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43668985/

相关文章:

hadoop - 命令 'ZkStartPreservingDatastore' 服务 'zookeeper1' 失败

java - 如何为具有动态大小的 ZooKeeper 集群初始化 CuratorFramework?

apache-kafka - 如何从完全失去动物园管理员和重新开始中恢复卡夫卡?

linux - Solr:如何将 solrcloud 5.5.1 升级到 6.6.0

与 zookeeper 相关的 hbase 错误

apache-zookeeper - 策展人 InterProcessMutex 与 InterProcessSemaphoreMutex

hadoop - 当实际事件名称节点关闭时,HDFS HA集群备用节点不会变为事件状态

hadoop - HBase如何使用ZooKeeper?

ruby - Zookeeper 1.4.11 无法安装

java - 在 Apache Kafka 中设置多个分区