我有一个kafka connect sink代码,下面的json作为curl命令传递给它来注册任务。
请让我知道,如果有人对如何获得我的连接任务id的任何想法。例如,在下面的示例中,我们定义了max tasks为3,因此我需要知道日志的3个任务的名称,即我需要知道日志的哪一行属于哪一个任务。
在下面的例子中,我知道我有3个任务- TestCheck-1
, TestCheck-2
以及 TestCheck-3
基于Kafka连接日志。我想知道如何获取任务名称,以便在kafka connect日志行中打印它们。
{
"name": "TestCheck",
"config": {
"topics": "topic1",
"connector.class": "ApplicationSinkTask Class package",
"tasks.max": "3",
"key.converter": "org.apache.kafka.connect.storage.StringConverter",
"value.converter": "org.apache.kafka.connect.storage.StringConverter",
"connector.url": "jdbc connection url",
"driver.name": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"username": "myusername",
"password": "mypassword",
"table.name": "test_table",
"database.name": "test",
}
}
当我注册时,我会得到下面的细节。
curl -X POST -H "Content-Type: application/json" --data @myjson.json http://service:8082/connectors
{"name":"TestCheck","config":{"topics":"topic1","connector.class":"ApplicationSinkTask Class package","tasks.max":"3","key.converter":"org.apache.kafka.connect.storage.StringConverter","value.converter":"org.apache.kafka.connect.storage.StringConverter","connector.url":"jdbc:sqlserver://datahubprod.database.windows.net:1433;","driver.name":"jdbc connection url","username":"myuser","password":"mypassword","table.name":"test_table","database.name":"test","name":"TestCheck"},"tasks":[{"connector":"TestCheck","task":0},{"connector":"TestCheck","task":1},{"connector":"TestCheck","task":2}],"type":null}
1条答案
按热度按时间zvms9eto1#
您可以使用kafka connect restapi管理连接器。你可以在这里找到一大堆命令
上面链接中给出的示例显示,可以使用以下命令检索给定连接器的所有任务
您可以使用自己选择的语言发送
curl
命令并将json响应导入变量/字典以供进一步使用,例如打印到日志。下面是一个使用python的非常简单的示例,它将整个输出分配给一个变量。如果你分析
data
变量到字典中,可以访问每个元素,即task id
我希望这有帮助!