为什么我的 Kafka connect sink 集群只有一个 worker 处理消息?

Why my Kafka connect sink cluster only has one worker processing messages?

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

我设法在独立模式下配置它,所以一切都是本地主机,Kafka 连接是使用 ./connect-standalone.sh 脚本启动的。

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

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

当我杀死其中一个 worker 时,另一个将消息流带回来,所以我认为集群设置良好。

我的看法:

已解决:

来自 Kafka 文档:

The division of work between tasks is shown by the partitions that each task is assigned

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

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