【问题标题】:kafka connect connector doesn't start automaticallykafka connect连接器不会自动启动
【发布时间】:2019-07-19 09:39:53
【问题描述】:

我有一个 Kafka Connect 源和接收器连接器,用于将数据放入 Kafka 并将其取出。

我正在使用以分布式模式运行连接的 docker-compose 运行 Kafka 和 Kafka Connect。看到它在连接启动时找到了我的插件,但它实际上并没有做任何事情,除非我对 /connectors API 进行 POST,包括 JSON 中的配置。

我有一个包含配置的属性文件,我尝试将它放在 /etc 下,在那里我可以找到其他已安装插件的类似属性文件。

我在安装插件时是否遗漏了一个步骤,或者是否需要通过 REST API 注册连接器才能将其分配给工作人员?

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    是的,您必须在使用分布式模式时使用 REST API 配置 Kafka Connect。

    虽然可以使用这样的 Docker Compose 编写连接器的创建脚本:

      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)

    【讨论】:

    • 如果我基本上还是要通过 REST 发送配置,那么在 /etc 下拥有属性文件有什么意义呢? :)
    • 如果你想在独立模式下运行它。
    • 明白了。他们没有办法在分布式模式下自动配置它,这似乎很愚蠢。谢谢!
    【解决方案2】:

    您可以在使用“confluent-hub install”启动分布式连接工作程序之前安装 Kafka 连接器,如下所示:Install Kafka connector manually)。但是,如果您不使用 confluent-hub,我不确定它有什么魔力。

    【讨论】:

    • Robin 的上述回答也是一个两步过程,只是在 Docker 初始化中编写了脚本:第 1 步:启动连接应用程序,第 2 步:启动连接器(通过 create-es-sink.sh)。您提供的 aws 链接使用独立模式(未分发),并且似乎是 AWS 特定的(并且没有帮助)。即使是 confluent-hub 方法也只是颠倒了顺序,但仍然需要两个步骤(安装连接器然后运行连接)。
    • 任何非 confluent-hub 连接器都将以相同的方式安装,并在启动后由您的 Worker 自动触发,并且在 plugin.path 中有对应的连接器 jar ...如果您正在运行一个 Kafka Connect 集群,您不需要做任何其他事情,您的连接器、AWS 或其他任何东西都将以分布式模式轻松运行。我以为这是你关于魔术步骤的问题:)
    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2021-10-20
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多