我尝试使用QuorumPeerMain.runFromConfig启动zookeeper节点 在BeforeAll方法中,以便我可以在测试中使用它 (它嵌入在同一个JVM中)。我得到了 Invalid configuration, only one server specified (ignoring) 其次是 java.lang.RuntimeException: My id 0 not in the peer list
我的配置是:
dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0
server.0=127.0.0.1:2888:3888
应该引用节点本身的最后一行在"无效配置"之后被丢弃。错误消息,然后zookeeper抛出一个Exception,因为它的id不在列表中。如果zookeeper没有丢弃它,它的id,0,将在列表中。如何避免此RuntimeException?
或者,有更好的方法从BeforeAll运行zookeeper吗?
答案 0 :(得分:0)
尝试Apache Curator测试框架。与他人一起工作会更舒服。有关详细信息,请参阅:TestingServer javadoc。
您可以在github
中找到测试示例答案 1 :(得分:0)
如配置中所示,该ID必须是唯一的,且在1到255之间。您已将ID设置为0(不在此集合中),这会导致此错误。
文档:https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkMulitServerSetup