Kafka Consumer组-分区数量-复制数量

时间:2018-12-21 18:45:43

标签: apache-kafka kafka-consumer-api

试图了解复制因子与“消费者”组之间的关系。示例:分区数= 2复制数= 3使用者组中的使用者数= 4。在这种情况下,

  1. 有多少消费者会收到该消息?
  2. 此复制方式将如何影响接收的消费者数量。

2 个答案:

答案 0 :(得分:4)

  • 对于第一个问题,由于示例中有两个分区,因此4个使用者中只有2个实际上会获取数据。其他两个使用者将没有分配任何分区,因为该使用者组没有剩余的任何分区。如果您有其他使用者组,那么仍将为这些使用者分配分区。

  • 此外,在这种情况下,您提到只有一条消息通过。根据分配给该分区的消息,将被发送到该分区。因此,在这种情况下,四个使用者中只有一个会收到消息,即分配了该分区的消息。

  • 对于第二个问题,Kafka中的复制因子配置不会影响使用者收到的消息数量。就消费者和生产者而言,复制是他们不需要担心的内部kafka群集详细信息。只要他们正在向分区负责人生产/从分区负责人消费,这就是他们所需要知道的全部。一个主题可能具有复制因子2,另一个主题可能具有复制因子10,并且它们的行为与生产者和消费者相同。

Kafka官方文档中还有更多详细信息:https://kafka.apache.org/documentation/#theconsumer

答案 1 :(得分:0)

要提供有关复制因子的其他一些详细信息,它与从该主题接收消息的消费者数量没有任何关系。复制仅用于一个主要目的,即高可用性。因此,假设您在集群中有3个代理,并且对于主题 my-topic ,您已将复制因子设置为2。现在,如果在某个时间点最多有一个代理发生故障, ,您仍然可以,因为消息已在该主题的另一个代理中复制。