1

所以我有一个消费者组正在运行并收听来自某个主题的消息。如何将更多的消费者实例添加到消费者组?如果这就是我收听消息的方式

let consumer = new kafka.ConsumerGroup(options, topicname);

consumer.on("message", function(message) {
    //process message here
  });

我尝试创建消费者并在选项中包含相同的组名,

new kafka.Consumer(
      client,
      [
        { topic: topicName}
      ],
      {
        groupId: groupId
      }
      );

但是当我运行命令时,我看不到它反映在消费者组中

bin/kafka-consumer-groups.sh --describe --group groupname --bootstrap-server localhost:9092

我看到同一个消费者被分配了不同的主题分区。

如何将更多消费者添加到已创建的现有消费者组中?

4

1 回答 1

0

在一个消费者组中,我们不能将两个消费者分配到同一个分区。我们可以让一个消费者从多个分区消费,但反之亦然。如果您的消费者数量超过分区数量,那么在这种情况下,其余消费者将处于空闲状态,不会执行任何任务。

如果分区数大于消费者数量,当你在同一个消费者组中添加更多消费者时,zookeeper 会自动平衡分配给消费者的分区,并确保没有两个消费者具有相同的分区,否则所有消息将被处理了两次。

于 2020-10-07T15:45:05.803 回答