当前位置: 首页 > 知识库问答 >
问题:

Kafka消费者可以从所有分区消费吗

锺离马鲁
2023-03-14

我有一个多分区主题,由多个使用者(同一组)使用。我的目标是最大化消费处理,即任何消费者都可以消费来自任何分区的消息。

我知道这看起来是不可能的,因为只有一个消费者可以从一个分区中消费。

有没有可能使用REST代理来实现这一点?例如,轮询所有代理消费者实例。

谢了。

共有2个答案

毛勇
2023-03-14

最大化使用处理的最佳方法是让一个使用者(同一组)从每个分区读取数据。

作为改进措施,您还可以查看:

  • 分区数:您可以增加它们,以便能够添加更多使用者并增加吞吐量
  • 如何在分区之间平衡消息,错误的键选择可能导致消息全部进入同一分区

另外,作为提醒,分区和使用者组只允许一个使用者,以避免并发问题。如果 2 个使用者提交不同的偏移量,会发生什么情况?-

谭越
2023-03-14

默认情况下,Kafka 使用者配置为从尽可能多的分区使用。如果同一主题上有多个同时使用的使用者,则使用相同的使用者组 ID,Kafka 将自动在所有这些使用者之间分配卷。这是设计使然,因此您可以通过添加更多使用者来快速扩展消费。

您可以选择将kafka消费者指示为仅来自特定分区的消费者,甚至包括一个,但您必须显式执行此操作。

 类似资料:
  • 本文向大家介绍Kafka 消费者是否可以消费指定分区消息?相关面试题,主要包含被问及Kafka 消费者是否可以消费指定分区消息?时的应答技巧和注意事项,需要的朋友参考一下 Kafa consumer消费消息时,向broker发出fetch请求去消费特定分区的消息,consumer指定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息,customer拥有了offset的控制权,可

  • null 我在这一页上读到以下内容: 使用者从任何单个分区读取,允许您以与消息生成类似的方式扩展消息消耗的吞吐量。 也可以将使用者组织为给定主题的使用者组-组内的每个使用者从唯一分区读取,并且组作为一个整体使用来自整个主题的所有消息。 如果使用者多于分区,则某些使用者将空闲,因为它们没有可从中读取的分区。 如果分区多于使用者,则使用者将从多个分区接收消息。 如果使用者和分区的数量相等,则每个使用者

  • 我有一个Kafka系统,看起来像这样(所有消费者都在一个消费者群体中): 在每个消费者中,我轮询消息,然后进行昂贵的计算(从1到60秒)。如果操作成功,我将提交消费者。 在我提交之前,另一个使用者是否会开始处理相同的消息?我需要保证,一旦消息被拾取,它就会被只执行一次 - 除非处理中途失败。

  • TL;DR;我试图理解一个被分配了多个分区的单个使用者是如何处理reach分区的消费记录的。 例如: 在移动到下一个分区之前,会完全处理一个分区。 每次处理每个分区中的可用记录块。 从第一个可用分区处理一批N条记录 以循环旋转方式处理来自分区的N条记录 我找到了或分配程序的配置,但这只决定了使用者如何分配分区,而不是它如何从分配给它的分区中使用。 我开始深入研究KafkaConsumer源代码,#

  • Flink kafka消费者有两种类型的消费者,例如: 这两个消费者层次结构扩展了相同的类。我想知道维护编号类背后的设计决策是什么?我们什么时候应该使用其中一种? 我注意到带有数字后缀的类有更多的特性(例如ratelimiting)。 https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kafka

  • 是否有一种方法以编程方式访问和打印使用者滞后偏移,或者说使用者读取的最后一条记录的偏移与某个生产者写入该使用者分区的最后一条记录的偏移之间的位置差。 要知道我的最终目标是将这个值发送到prometheus进行监视,我应该在上面添加哪些语句来得到滞后偏移值?