【问题标题】:Why my Kafka connect sink cluster only has one worker processing messages?为什么我的 Kafka 连接接收器集群只有一个工作人员处理消息?
【发布时间】:2020-07-21 01:05:07
【问题描述】:

我最近在我的计算机上设置了一个本地 Kafka 用于测试和开发目的:

  • 3 个经纪人
  • 一个输入主题
  • Kafka 在主题和弹性搜索之间连接接收器

我设法将它配置为独立模式,所以一切都是 localhost,并且 Kafka 连接是使用 ./connect-standalone.sh 脚本启动的。

我现在要做的是在分布式模式下运行我的连接器,因此可以将 Kafka 消息分离到两个工作器中。 我已经启动了两个工人(仍然在同一台机器上),但是当我向我的 Kafka 主题发送消息时,只有一个工人(最后一个启动的)正在处理消息。

所以我的问题是:为什么只有一个工作人员在处理 Kafka 消息而不是两个

当我杀死一名工作人员时,另一名工作人员将消息流返回,因此我认为集群设置良好。

我的想法:

  • 我的 Kafka 消息中没有放 Keys,会不会和这个有关?

  • 我在 localhost 中运行所有内容,分布式模式可以这样工作吗? (我已经正确配置了特定的唯一字段,例如ret.port

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    已解决:

    来自 Kafka 文档:

    任务之间的工作分工通过分配给每个任务的分区来显示

    如果不使用分区(将所有消息推送到同一个分区),worker 将无法划分消息。 您不需要使用消息密钥,您可以将消息以循环方式推送到不同的分区。

    见:https://docs.confluent.io/current/connect/concepts.html#distributed-workers

    【讨论】:

      猜你喜欢
      • 2015-04-28
      • 2018-12-22
      • 2019-07-30
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 2021-03-28
      • 2017-06-23
      • 2021-08-16
      相关资源
      最近更新 更多