我在本地“启动”Docker 容器(独立于 Kafka 节点容器)中以分布式模式启动 Kafka 连接器。连接器按预期工作,但是当我终止启动容器时,连接器停止工作。我希望它能够继续工作,因为我相信它是在另一个容器中的 Kafka 节点上的工作人员上注册和运行的。我更详细的设置如下:
目前,我正在本地通过 Docker 容器运行所有内容。我有:
- Zookeeper 节点 (3.4.9)
- 一个 Kafka 节点(Apache,0.10.1.0)
- 一个“启动”节点。
启动节点下载适当的 Kafka 版本并解压缩其内容。然后它构建连接器源,设置类路径以包含必要的 JAR,然后执行连接器,如下所示:
connect-distributed.sh config/connect-distributed.properties
分布式属性文件设置组 ID、各种主题名称、模式和转换器以及引导服务器(指向上面的 Kafka 节点 (2))。
此命令似乎执行正确,restful 连接器 http 服务已成功启动。然后我可以向http://example:8083/connectors发出 POST 请求,为连接器任务提供配置。命令完成且没有错误,连接器已成功启动。我可以从 Kafka 节点 (2) 中的主题消费,我看到的输出表明连接器正在工作并通过它发送数据。
当我终止启动节点 (3) 时,我希望连接器能够继续运行,因为我在 Kafka 集群中注册了它,尽管它是一个集群。连接器不会继续运行,并且似乎与启动节点一起死亡。连接器现在不应该由集群中的工作人员管理吗?我是否需要更改启动连接器的方式或者我误解了什么?