【问题标题】:Using same consumer group for different kafka topics对不同的 kafka 主题使用相同的消费者组
【发布时间】:2021-05-11 08:44:43
【问题描述】:

我有两个不同的 kafka 主题 T1 和 T2,分别有一个消费者 C1 和 C2。 C1 和 C2 具有相同的消费组 G1。现在,如果 C1 死了,C2 会消费来自主题 T1 和 T2 的消息吗?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    Kafka 将存储G1 组消费者线程(即C1)在它死之前的最后提交偏移量,然后存储任何新的消费者线程,例如属于G1 组的C2 或CX..将从C1提交的最后一个偏移量开始消费

    【讨论】:

    • 这是否意味着,在 C1 死亡后,仅从 T2 消费的 C2 将开始从 T1 和 T2 消费?
    【解决方案2】:

    不,作为你的

    • C1 配置为只读主题 T1 和
    • C2 配置为只读主题 T2

    即使两个消费者的组 id 相同,它在检查最后提交的偏移量时也能正常工作,但会根据 groupid 和主题进行检查。

    由于这里的主题是不同的 T1 和 T2,消费者 C1 和 C2 只消费各自的主题 T1 和 T2。

    对于您的问题“如果 C1 死亡,C2 是否会从 T1 消耗?”。 不,因为 C2 没有订阅 T2 主题。因此,无论 groupid 相同还是不同,C2 都不会从 T1 消费,因为它没有订阅它。

    【讨论】:

    • 感谢您的回复。你能告诉我当 C1 死后话题 T1 会发生什么吗?由于它是 T1 的唯一消费者,消息会在保留时间内留在主题中并消失,还是会为该主题分配新的消费者。
    • 是的,考虑到您只有消费者 C1 - 当 C1 死亡时,主题中的数据会保留到保留时间。除非您重新启动 C1 或启动另一个具有相同或不同组的消费者,否则不会从主题中消费数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2019-03-19
    相关资源
    最近更新 更多