kafka connect连接器不会自动启动
kafka connect connector doesn't start automatically
我有一个 Kafka Connect 源和接收器连接器,用于将数据放入 Kafka 并将其取出。
我是 运行 Kafka 和 Kafka Connect 使用 docker-compose 以分布式模式运行连接。看到它在连接启动时找到了我的插件,但它实际上并没有做任何事情,除非我对 /connectors API 执行 POST,包括 JSON 中的配置。
我有一个包含配置的属性文件,我尝试将它放在 /etc 下,我在其中找到了与已安装的其他插件类似的属性文件。
我在安装插件时是否遗漏了一个步骤,或者是否需要通过 REST API 注册连接器才能分配给工作人员?
是的,在使用分布式模式时,您必须使用 REST API 配置 Kafka Connect。
虽然可以使用 Docker 编写连接器的脚本,如下所示:
command:
- bash
- -c
- |
/etc/confluent/docker/run &
echo "Waiting for Kafka Connect to start listening on kafka-connect ⏳"
while [ $$(curl -s -o /dev/null -w %{http_code} http://kafka-connect:8083/connectors) -eq 000 ] ; do
echo -e $$(date) " Kafka Connect listener HTTP state: " $$(curl -s -o /dev/null -w %{http_code} http://kafka-connect:8083/connectors) " (waiting for 200)"
sleep 5
done
nc -vz kafka-connect 8083
echo -e "\n--\n+> Creating Kafka Connect Elasticsearch sink"
/scripts/create-es-sink.sh
sleep infinity
其中 /scripts/create-es-sink.sh
是来自 curl
在本地安装到容器的文件中的 REST 调用。
(source)
您可以在使用“confluent-hub install”启动分布式 Connect worker 之前安装 Kafka 连接器,如下所示:)。但是,如果您不使用 confluent-hub,我不确定它有什么魔力。
我有一个 Kafka Connect 源和接收器连接器,用于将数据放入 Kafka 并将其取出。
我是 运行 Kafka 和 Kafka Connect 使用 docker-compose 以分布式模式运行连接。看到它在连接启动时找到了我的插件,但它实际上并没有做任何事情,除非我对 /connectors API 执行 POST,包括 JSON 中的配置。
我有一个包含配置的属性文件,我尝试将它放在 /etc 下,我在其中找到了与已安装的其他插件类似的属性文件。
我在安装插件时是否遗漏了一个步骤,或者是否需要通过 REST API 注册连接器才能分配给工作人员?
是的,在使用分布式模式时,您必须使用 REST API 配置 Kafka Connect。
虽然可以使用 Docker 编写连接器的脚本,如下所示:
command:
- bash
- -c
- |
/etc/confluent/docker/run &
echo "Waiting for Kafka Connect to start listening on kafka-connect ⏳"
while [ $$(curl -s -o /dev/null -w %{http_code} http://kafka-connect:8083/connectors) -eq 000 ] ; do
echo -e $$(date) " Kafka Connect listener HTTP state: " $$(curl -s -o /dev/null -w %{http_code} http://kafka-connect:8083/connectors) " (waiting for 200)"
sleep 5
done
nc -vz kafka-connect 8083
echo -e "\n--\n+> Creating Kafka Connect Elasticsearch sink"
/scripts/create-es-sink.sh
sleep infinity
其中 /scripts/create-es-sink.sh
是来自 curl
在本地安装到容器的文件中的 REST 调用。
(source)
您可以在使用“confluent-hub install”启动分布式 Connect worker 之前安装 Kafka 连接器,如下所示: