CCA*_*CAA 5 apache-kafka apache-kafka-connect confluent-platform
有没有办法在 Kafka Connect 启动时自动加载(多个)Kafka Connect 连接器(例如在 Confluence Platform 中)?
到目前为止我发现了什么:
Confluence Docs 声明使用bin/connect-standalone
独立模式的命令以及工作线程和每个连接器的属性文件。
对于分布式模式,您必须通过 REST API 运行连接器。
https://docs.confluence.io/current/connect/userguide.html#standalone-mode,https://docs.confluence.io/current/connect/managing/configuring.html#standalone-example
是否有另一种方法,例如包含应在“connect-[standalone|distributed].properties”文件中运行的所有连接器(类似于在 ksql-server.properties 中提供 KSQL 查询文件),以便它们自动加载到Kafka Connect 的启动(例如在 Confluence 平台中)?
或者,即使在生产环境中,连接器是否也如上所述“手动”加载?
通常,在分布式模式下运行 Kafka Connect 时,您必须使用 REST API。但是,您可以使用 docker compose 来编写连接器创建的脚本;\n@Robin Moffatt 写了一篇不错的文章:
\n\nkafka-connect:\n image: confluentinc/cp-kafka-connect:5.1.2\n environment:\n CONNECT_REST_PORT: 18083\n CONNECT_REST_ADVERTISED_HOST_NAME: "kafka-connect"\n [\xe2\x80\xa6]\n volumes:\n - $PWD/scripts:/scripts\n command: \n - bash \n - -c \n - |\n /etc/confluent/docker/run & \n echo "Waiting for Kafka Connect to start listening on kafka-connect \xe2\x8f\xb3"\n while [ $$(curl -s -o /dev/null -w %{http_code} http://kafka-connect:8083/connectors) -eq 000 ] ; do \n echo -e $$(date) " Kafka Connect listener HTTP state: " $$(curl -s -o /dev/null -w %{http_code} http://kafka-connect:8083/connectors) " (waiting for 200)"\n sleep 5 \n done\n nc -vz kafka-connect 8083\n echo -e "\\n--\\n+> Creating Kafka Connect Elasticsearch sink"\n /scripts/create-es-sink.sh \n sleep infinity\n
Run Code Online (Sandbox Code Playgroud)\n\n\n\n笔记:
\n\n\n
\n- \n
在命令部分,
$
替换为$$
以避免错误\n“命令”选项的插值格式无效- \n
sleep infinity
是必需的,因为我们\xe2\x80\x99 已将进程发送/etc/confluent/docker/run
到\n后台线程 (&
),因此如果主\ncommand
完成,容器将退出。- \n
配置连接器的实际脚本是\n
curl
单独文件中的\n 调用。您可以将其构建到 Docker\n Compose 中,但感觉有点恶心。- \n
如果您想在启动 Kafka Connect 之前安装自定义连接器插件,则可以结合使用此技术和上面的技术,例如\n
confluent-hub install --no-prompt confluentinc/kafka-connect-gcs:5.0.0 /etc/confluent/docker/run
归档时间: |
|
查看次数: |
2704 次 |
最近记录: |