Kafka生产者可以做消费者滞后感知分区吗

Can Kafka producer do consumer lag aware partitioning

我们作为 Kafka 生产者向一个主题生成消息,该主题仅由一组消费者使用。消费者的速度是截然不同的。我们总是有一定数量的消费者滞后作为缓冲。

生产者是否可以知道消费者组的每个分区的延迟,并首先向延迟最低的分区生产消息?如果我使用 C/C++ 客户端或 Java 客户端是否可能?

谢谢。

不可能。

您必须确保您使用的策略将工作平均分配给所有分区。 您可以提供适合您需要的自定义分区程序

例如:https://dzone.com/articles/custom-partitioner-in-kafka-lets-take-quick-tour.

默认的分区程序策略是循环

这是可能的,因为您可以从生产者内部查找任何消费者组名称的滞后,但是由于消费者是 运行,这些值会波动,您需要自己了解哪些消费者是 运行,这将是 Kafka 中的反模式。

我建议调整其他消费者设置,例如投票大小/频率