Kafka - Primie Number of Partitions Issue & Consumer Group Rebalance

文章目录


在这里插入图片描述


在这里插入图片描述

  • 生产者:将数据写入 Kafka 的客户端。

  • 消费者:从 Kafka 中读取数据的客户端。

  • Topic:Kafka 中用于组织和存储数据的逻辑概念,类似于数据库表。

  • Record:发送到 Topic 的消息称为 Record。

  • Partition:Topic 的分区,用于水平扩展和提高并发性能。

  • Offset:表示 Record 在 Partition 中的顺序。

  • Consumer Group:一组消费者共同消费一个 Topic 中的数据。

  • Broker:Kafka 集群中的一个节点,用于存储和处理数据。

  • Consumer Group State:由 Broker 写入名为 __consumer_offsets 的内部 Kafka topic 的消费者组状态。

  • Consumer Group ID:标识具有独立状态的消费者组的参数。

  • Consumer Group Coordinator:负责管理 Consumer Group State 的 Broker。

  • Consumer Group Assignment Strategy:确定如何将分区分配给 Consumer Group 中的消费者。

    Kafka 提供了两种 Consumer Group Assignment Strategy:

    Range Assignment Strategy:该策略将 Topic 的每个 Partition 按照 Partition ID 进行排序,然后将它们平均分配给 Consumer Group 中的每个消费者。这样,每个消费者都会消费一些连续的 Partition。

    Round Robin Assignment Strategy:该策略将 Topic 的所有 Partition 均匀地分配给 Consumer Group 中的每个消费者。这样,每个消费者都会按照顺序消费一些 Partition,然后再从头开始。

    可以通过在 Consumer Group 中设置 partition.assignment.strategy 参数来选择使用哪种 Consumer Group Assignment Strategy。

    默认情况下,Kafka 使用 Range Assignment Strategy。

  • Primie Number of Partitions Issue:如果 Topic 中的分区数为质数,则可能会导致某些 Consumer Group 中的消费者比其他 Consumer Group 中的消费者消耗更少的分区。

  • Multiple Consumer Groups:多个 Consumer Group 可以独立地读取同一个具有自己独立状态的 Topic。

  • Consumer Group Rebalance:在 Consumer Group 中添加或删除消费者时,分配策略会重新平衡分区分配。

在 Kafka 中,Consumer Group Rebalance 是指在 Consumer Group 中添加或删除消费者时,重新分配 Topic 的分区的过程。Consumer Group Rebalance 由 Consumer Group Coordinator(负责管理 Consumer Group State 的 Broker)触发,并使用 Consumer Group Assignment Strategy(确定如何将分区分配给 Consumer Group 中的消费者)重新平衡分区分配。

Consumer Group Rebalance 的过程如下:

当 Consumer Group 中添加或删除消费者时,Consumer Group Coordinator 触发 Consumer Group Rebalance。

Consumer Group Coordinator 使用 Consumer Group Assignment Strategy 重新平衡分区分配。

Consumer Group Coordinator 将新的分区分配方案写入名为 __consumer_offsets 的内部 Kafka topic。

消费者使用 __consumer_offsets topic 中的信息来恢复其消费进度,并继续消费数据。

Consumer Group Rebalance 是 Kafka 中一个重要的概念,它可以帮助实现高可用性和伸缩性。但是,如果 Consumer Group Rebalance 发生过于频繁,就可能会影响 Kafka 集群的性能和稳定性。因此,在使用 Kafka 时,需要合理地设置 Consumer Group 的数量和消费者数量,以避免过于频繁的 Consumer Group Rebalance。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yangshangwei/article/details/131813361