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

用于至少一次消息传递的Kafka分区和消费者组

仲浩歌
2023-03-14

我试图提出一个设计,使用Kafka为多个处理代理并行处理来自Kafka主题的消息。

    null

或者还有什么我遗漏的地方可能有助于我对这一点的理解?

共有1个答案

鲁淇
2023-03-14

如果一个消息被发布到一个主题,它是只在主题中的所有分区上存在一次,还是可能在多个分区上复制?我读过可以支持这两种可能性的声明。

[A]:分区根据复制因子跨节点复制。如果在一个有2个节点且复制因子为2的代理中有分区P1,那么,node1将是P1的主要领导者,node2也将有P1的内容/消息,但它将是副本(复制以异步方式进行)

“偏移量”是每个分区还是每个消费者/消费者组/分区?

如果我想扩展新的用户,并且没有空闲分区(我认为每个分区不能超过一个用户),kafka会重新平衡来自现有分区的现有消息吗?这如何影响现有分区的偏移量和用户?

[A]对于并行性,理想的场景是有1-1映射B/W消费者和分区。例如,如果有10个分区,最多可以有10个消费者。如果您引入第11个,除非现有消费者离开组,否则kafka不会为其分配分区

 类似资料:
  • 我正在尝试用Java实现一个简单的生产者-->Kafka-->消费者应用程序。我能够成功地生成和使用消息,但是当我重新启动消费者时,问题就出现了,其中一些已经使用的消息再次被消费者从Kafka中拾取(不是所有的消息,而是最近使用的一些消息)。 我已在我的使用者中设置了,并且我的属性设置为1000毫秒。 “重新传递一些已使用的消息”是一个已知的问题,还是有任何其他设置,我没有在这里? 基本上,有没有

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

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

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

  • 假设我有一个名为“MyTopic”的主题,它有3个分区P0、P1和P2。这些分区中的每一个都有一个leader,并且本主题的数据(消息)分布在这些分区中。 1.Producer将始终根据代理上的负载以循环方式写到分区的领导者。对吗? 2.制作人如何认识隔断的首领?

  • 这是一个关于Kafka和信息如何被消费的非常基本的问题,但不幸的是,我在这一点上找不到任何答案。 假设我想过度分区,那么我将得到比消费者多10倍的分区。过度分区是必需的,因为我希望能够扩展(在未来并行处理更多的消息)。 1 个主题分为 1000 个分区,由 100 个使用者使用 =- 我的问题是: > 消息是如何为每个消费者消费的:它是以循环方式完成的吗?如果不是,分发是如何完成的? 有没有保证消