使用尚未使用的名称创建kafka连接器

时间:2019-01-08 13:45:00

标签: apache-kafka apache-kafka-connect

当我尝试创建一个通过rest调用已在使用的名称的kafka连接器时,出现错误消息,

  

{“错误代码”:409,“消息”:“连接器测试已存在”}

例如,在创建kafka Topic时,我想绕过此错误,

./kafka-topics **--if-not-exists**  --create --zookeeper localhost:2181 --replication-factor  1 --partitions 1  --topic test

创建kafka连接器时,我们是否有类似--if-not-exists的东西?

2 个答案:

答案 0 :(得分:0)

没有直接方法,但是您始终可以使用自定义脚本来适应验证。 您可以使用REST API来查询活动的连接器,如下所示。

 curl localhost:8083/connectors  // will return the active connectors on worker
 ["local-file-sink1", "db-sink1"]

一旦获得活动连接器的名称,就可以对连接器属性进行验证,以查看该名称是否已被使用。

答案 1 :(得分:0)

我喜欢这样做的方式是将PUT方法用于配置端点,如下所示:

curl -i -X PUT -H "Accept:application/json" -H  "Content-Type:application/json" \
http://localhost:8083/connectors/my-connector-name/config -d "@my-connector-config.json"

行为是在不存在的情况下进行创建,否则进行更新,更多信息请参见此处的文档:https://docs.confluent.io/current/connect/references/restapi.html#put--connectors-(string-name)-config

请注意,您的json负载不需要包含nameconfig,而仅包含config内容,如docs示例中所示。