我有一个部署在kafka集群中的kafka连接插件(在独立模式下,仅用于测试,其目的是分发它)。这个kafka连接插件使用策展人连接到集群的zookeper,并从中提取一些信息以决定如何处理消息。
代码是这样的:
protected CuratorFramework getCurator(final String zkConnection) {
final CuratorFramework curator = CuratorFrameworkFactory.newClient(zkConnection,
new ExponentialBackoffRetry(1000, 3));
curator.start();
return curator;
}
treeCache = new TreeCache(curator, settings.getConfigurationRoot());
...
treeCache.start()
它在treeCache启动时超时,配置根路径存在于本地zookeeper中(确认在zookeeper-shell中执行ls,以及我尝试过的zkConnection字符串:
在云中运行的kafka流模块使用相同的代码与该zookeeper连接...知道这里发生了什么吗?
谢谢!
答案 0 :(得分:0)
发现错误!我在try-with-resources语句中调用了getCurator,这使得策展人在启动treeCache之前关闭了,一旦我将curator移出try-with-resources语句并在SinkTask的stop方法中关闭它一切正常。
干杯!