Apache kafka 卡夫卡制作人可以进行消费者延迟感知分区吗

Apache kafka 卡夫卡制作人可以进行消费者延迟感知分区吗,apache-kafka,kafka-producer-api,Apache Kafka,Kafka Producer Api,我们是卡夫卡制作人,他为一个主题生成消息,而这个主题只被一组消费者使用。消费者的速度大不相同。我们总是有一定数量的消费者滞后作为缓冲 生产者是否可能知道消费者组的每个分区的延迟,并首先向延迟最低的分区生成消息?如果我使用C/C++客户机或Java客户机,有可能吗 谢谢。这是不可能的 您必须确保使用的策略将工作平均分配到所有分区。 您可以提供一个符合您需要的自定义分区器 例如,请看: 默认的分区策略是循环这是不可能的 您必须确保使用的策略将工作平均分配到所有分区。 您可以提供一个符合您需要的自定义

我们是卡夫卡制作人,他为一个主题生成消息,而这个主题只被一组消费者使用。消费者的速度大不相同。我们总是有一定数量的消费者滞后作为缓冲

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

谢谢。

这是不可能的

您必须确保使用的策略将工作平均分配到所有分区。 您可以提供一个符合您需要的自定义分区器

例如,请看:

默认的分区策略是循环

这是不可能的

您必须确保使用的策略将工作平均分配到所有分区。 您可以提供一个符合您需要的自定义分区器

例如,请看:


默认的分区策略是循环运行

这是可能的,因为您可以从生产者中查找任何消费者组名称的延迟,但是当消费者运行这些值时,这些值会波动,并且您需要了解哪些消费者正在运行,这在卡夫卡中是一种反模式


我建议调整其他消费者设置,如投票大小/频率,这是可能的,因为您可以从制作人内部查找任何消费者组名称的延迟,但是当消费者运行时,这些值会波动,并且您需要了解哪些消费者正在运行,这将是卡夫卡的反模式


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

谢谢您的回复。事实上,我正在寻找一种方法,让使用者使用任何挂起的消息,而不限于其分配的分区。我找到了卡夫卡REST代理,它似乎就是为了这个目的。但是,通过http消费的性能比本机客户端差得多。我不确定这是否是代理的典型用例,REST代理只是包装了普通的本机Java使用者。我认为这不会解决您遇到的任何问题。如果我在代理上创建一个使用者实例,那么这个代理使用者将侦听所有分区。如果我让我的所有客户机在这个实例上调用fetchdataapi,那么看起来客户机可以从任何分区进行消费。我说的对吗?代理自己管理多个使用者实例线程。您只需使用API创建一个消费者组,然后从一个端点提取主题。它不会扩展到您自己应用程序的多个实例,因此不可能使用API从不同应用程序实例中提取相同的代理使用者实例,对吗?谢谢你的回复。事实上,我正在寻找一种方法,让使用者使用任何挂起的消息,而不限于其分配的分区。我找到了卡夫卡REST代理,它似乎就是为了这个目的。但是,通过http消费的性能比本机客户端差得多。我不确定这是否是代理的典型用例,REST代理只是包装了普通的本机Java使用者。我认为这不会解决您遇到的任何问题。如果我在代理上创建一个使用者实例,那么这个代理使用者将侦听所有分区。如果我让我的所有客户机在这个实例上调用fetchdataapi,那么看起来客户机可以从任何分区进行消费。我说的对吗?代理自己管理多个使用者实例线程。您只需使用API创建一个消费者组,然后从一个端点提取主题。它不会扩展到您自己应用程序的多个实例,因此不可能使用API从不同应用程序实例中提取相同的代理使用者实例,对吗?谢谢