这个问题与XD 1.1.2.RELEASE有关。我是XD的新手,所以请原谅这是一个愚蠢的问题。
文档中只说XD没有随Zookeeper一起提供,我认为只有在我准备好进入多节点时才会需要它。
话虽这么说,我在尝试部署流时遇到了一些不良行为: 1.每次添加流时,它都不会在XD重新启动时保持不变。 2.流设置超时。在调试模式下,它在Spring-dirt中陷入了ModuleDeploymentWriter。如果我正确地阅读该类,似乎它正在编写一个文件,由Zookeeper读取,然后在从未收到响应时超时。
起初我以为这是我的自定义Cassandra XD接收器连接超时,但似乎并没有首先达到代码。
任何帮助表示赞赏!
答案 0 :(得分:1)
文档中只说XD没有随Zookeeper一起提供,我认为只有在我准备好进入多节点时才会需要它。
没错。但是,XD单节点使用嵌入式ZooKeeper。
- 每次添加流时,它都不会在XD重新启动时保持不变。
醇>
您使用的是单节点还是分布式模式?如果您使用的是单节点,则每次XD重新启动时,它都会使用不同的ZooKeeper实例。因此,在单节点中,您无法在服务器重新启动之间保持流的持久性。您仍然可以通过在servers.yml中设置zk.client.connect
为单节点提供外部ZK配置来覆盖此功能。
- 流设置超时。
醇>
一些日志消息或堆栈跟踪可以帮助弄清楚这里发生了什么。如果使用单节点,则ModuleDeploymentWriter应将部署写入在同一JVM上运行的容器。
如果您正在调试模式(如提及的@dturanski)上运行,您可以尝试在servers.yml中增加部署超时属性xd.admin.deploymentTimeout
。默认值为30秒。
答案 1 :(得分:0)
您不需要外部Zookeeper在单节点中运行,因为它启动了嵌入式服务器。这会将状态保留在内存中,因此在重新启动之间会丢失状态。但是,您可以将其配置为连接到外部Zookeeper集合。
如果“debug modue”指的是使用调试器运行SingleNodeApplication,那么如果设置断点,它可能会超时。