我在Kafka connect中有一个主题,我想将数据写入两个不同的位置。为此,我有两个自定义连接器。
我不在Confluent平台上工作。。我仅在kafka集群上工作,并且我打算使用connect-distributed.sh
的kafka。
但是,我不知道如何部署这些不同的作业。我应该创建两个distributed.properties文件,然后将它们部署在不同的端口上吗?
此外,我应该将每个属性和连接器jar文件放入kafka群集的每个节点吗?
谢谢。
答案 0 :(得分:0)
在分布式模式下运行Kafka Connect时,可以使用REST API配置连接器。该API在Kafka docs中进行了描述。基本上,您获取属性文件,将其转换为JSON并将其发布到connect-address:8083/connectors
。例如:
curl \
-X POST \
-H "Content-Type: application/json" \
--data '{ "name": "my-connector", "config": { "connector.class": "MyConnectorClass", "tasks.max": "3", "topics": "my-topics", "some-other-option": "some-value" } }' \
http://localhost:8083/connectors
答案 1 :(得分:0)
Connect并非Confluent平台独有。如Kafka文档中所回答和所示,您将使用REST API创建其他连接器
不同的连接器不能使用相同的group.id以及相同的offset / status / config主题
(对于接收器连接器)组ID对于连接器名称将是唯一的,即使共享了相同的主题,也不会共享
存储源连接器的偏移量,并且配置和状态再次由连接器名称分隔,这并不意味着运行的连接器是唯一的。另外,无论如何,这些主题都无法通过REST API更改
我应该将每个属性和连接器jar文件放置到kafka群集的每个节点上
Connect应该与代理分开运行,但是您将它们放置在Connect属性文件中设置的插件路径中