如何开始在开源 Apache Kafka 中运行 kafka 连接器?

Posted

技术标签:

【中文标题】如何开始在开源 Apache Kafka 中运行 kafka 连接器?【英文标题】:How to start running kafka connector in Open Source Apache Kafka? 【发布时间】:2022-01-13 04:07:04 【问题描述】:

我试图使用开源 apache kafka 运行 Kafka 连接器(不使用 confluent)

bin/connect-distributed.sh config/connect-distributed.properties

这工作正常,但这种方式只会启动 Kafka 连接器,我如何加载社区连接器?

bin/connect-distributed.sh config/connect-distributed.properties --config filesource.properties
bin/connect-distributed.sh config/connect-distributed.properties filesource.properties

我尝试了上面的两个命令,都没有报错,但是加载连接器模块失败。 另一个问题,我输入什么命令来检查连接器的状态?

【问题讨论】:

【参考方案1】:

关于检查连接器的状态,可以使用 curl GET 命令。

curl -X GET http://localhost:8083/connectors/connector_name/status|jq

jq 是可选的,它提供了更好的可视化。如果你想检查所有的连接器,我可以推荐我使用的这个脚本:

curl -s "http://localhost:8083/connectors"| jq '.[]'| xargs -Iconnector_name curl -s "http://localhost:8083/connectors/"connector_name"/status"| jq -c -M '[.name,.connector.state,.tasks[].state]|join(":|:")'| column -s : -t| sed 's/\"//g'| sort

我强烈推荐使用 jq 来做这个。对于每个任务,您应该会看到输出为“正在运行”、“失败”或“未分配”。

编辑: 创建连接器:

curl -XPOST --header "Content-Type: application/json"  localhost:8083/connectors  -d
'
    "name": "your_connector",
    "config": 
    "connector.class": "io.debezium.connector.oracle.OracleConnector",
    "database.user": "user123"
    
'

【讨论】:

有没有办法使用原生 kafka 命令代替 curl?还是默认的本地主机端口 8083?我相信我的端口是 9092 什么的 我相信 9092 是引导服务器的默认值。 here 它说 8083 是连接 rest api 的默认值。此外,我还没有看到任何其他方式或命令来管理连接器。 "error_code": 404, "message": "No status found for connector connector_name" 你知道加载连接器的命令是什么吗?我只设法启动了 kafka connect worker。 首先检查创建了哪些连接器。 curl -X GET http://localhost:8083/connectors 应该这样做。如果它没有返回任何内容,则意味着没有创建连接器。顺便说一句,您应该使用您自己的连接器名称更改 connector_name 字段。

以上是关于如何开始在开源 Apache Kafka 中运行 kafka 连接器?的主要内容,如果未能解决你的问题,请参考以下文章

专为实时而构建:使用Apache Kafka进行大数据消息传递,第1部分

消息队列中间件Kafka 入门指南

在.NET中使用Apache Kafka

如何在apache kafka中删除主题[重复]

kafka操作指南

如何检查Apache Kafka服务运行状态