【问题标题】:How to run two console consumers in the same consumer group?如何在同一个消费者组中运行两个控制台消费者?
【发布时间】:2018-12-17 20:00:25
【问题描述】:

当我运行两个具有完全相同属性的 Kafka-console-consumers 实例(使用默认的 config/consumer.properties)时,我在两个实例上都收到相同的消息。

./bin/kafka-console-consumer.sh --bootstrap-server :9092 --topic test1

如果两个实例具有相同的消费者组 ID,Kafka 不应该只向其中一个消费者发送给定消息吗?如何将它们作为一个消费群体运行?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    我从 kafka 文档中找到了这个

    当没有提供 group.id 时,控制台使用者的 enable.auto.commit 属性的默认值现在设置为 false。这是为了避免污染消费者协调器缓存,因为自动生成的组不太可能被其他消费者使用。

    但诀窍是,使用此命令列出所有主题的所有消费者组,正如你所说,我已经打开了四个控制台消费者,我想检查从该主题消费的消费者组列表

    bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
    

    每个控制台消费者都从不同的组 id 开始,这就是总是从添加此属性开始消费的原因 (--from-beginning)

    ups.sh --bootstrap-server localhost:9092 --list
    Note: This will not show information about old Zookeeper-based consumers.
    console-consumer-66835
    console-consumer-38647
    console-consumer-18983
    console-consumer-18365
    console-consumer-96734
    

    为控制台消费者设置 group.id 的最简单方法

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --consumer-property group.id=test1
    

    阅读Managing Consumer Groups

    【讨论】:

      【解决方案2】:

      诀窍是使用--consumer.config config/consumer.properties--consumer-property group.id=test1 明确指定group.id

      ./bin/kafka-console-consumer.sh \
        --bootstrap-server localhost:9092 \
        --topic test1 \
        --consumer.config config/consumer.properties
      

      【讨论】:

        猜你喜欢
        • 2019-06-10
        • 2021-05-14
        • 2016-04-12
        • 2020-07-08
        • 1970-01-01
        • 1970-01-01
        • 2011-06-04
        • 1970-01-01
        相关资源
        最近更新 更多