代码之家  ›  专栏  ›  技术社区  ›  Karthikeyan Rasipalay Durairaj

Kafka使用者组-分区号-复制号

  •  0
  • Karthikeyan Rasipalay Durairaj  · 技术社区  · 6 年前

    试图理解复制因素和消费者群体之间的关系。示例:分区数=2复制数=3消费者组中的消费者数=4。在这种情况下,

    1. 有多少消费者将收到该消息?
    2. 此复制将如何影响要接收的使用者数量。
    2 回复  |  直到 6 年前
        1
  •  4
  •   mjuarez    6 年前
    • 对于您的第一个问题,因为您的示例中有两个分区,所以4个使用者中只有2个真正获得数据。其他两个使用者将不会分配任何分区,因为没有剩余的分区 对于那个消费群体 . 如果您有一个不同的使用者组,那么这些使用者仍然会被分配分区。

    • 另外,在本例中,您提到只有一条消息通过。根据分配给哪个分区,消息将 只有 被送到那个分区。所以在这种情况下,只有 四个使用者中的一个将得到消息,即分配了该分区的那个。

    • 至于第二个问题,Kafka中的复制因子配置不会影响消费者接收的消息数。就消费者和生产者而言,复制是 内部卡夫卡集群细节 他们不需要担心的。只要他们向分区负责人生产/消费,他们就需要知道这些。一个主题可以有复制因子2,另一个主题可以有复制因子10,它们对生产者和消费者的行为都是相同的。

    卡夫卡官方文件中还有一些细节: https://kafka.apache.org/documentation/#theconsumer

        2
  •  0
  •   Bitswazsky    6 年前

    提供有关 复制因子 ,它与从主题接收消息的消费者数量没有任何关系。复制只有一个主要目的,那就是 高可用性 . 假设一个集群中有3个代理,对于一个主题 我的主题 您已将复制因子设置为2。现在,如果最多有一个代理在某个时间点出现故障,您仍然可以正常工作,因为消息是在另一个代理中为主题复制的。