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 中的反模式。
我建议调整其他消费者设置,例如投票大小/频率
我们作为 Kafka 生产者向一个主题生成消息,该主题仅由一组消费者使用。消费者的速度是截然不同的。我们总是有一定数量的消费者滞后作为缓冲。
生产者是否可以知道消费者组的每个分区的延迟,并首先向延迟最低的分区生产消息?如果我使用 C/C++ 客户端或 Java 客户端是否可能?
谢谢。
不可能。
您必须确保您使用的策略将工作平均分配给所有分区。 您可以提供适合您需要的自定义分区程序。
例如:https://dzone.com/articles/custom-partitioner-in-kafka-lets-take-quick-tour.
默认的分区程序策略是循环
这是可能的,因为您可以从生产者内部查找任何消费者组名称的滞后,但是由于消费者是 运行,这些值会波动,您需要自己了解哪些消费者是 运行,这将是 Kafka 中的反模式。
我建议调整其他消费者设置,例如投票大小/频率