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

加速kafka消费者处理,但确保事件的顺序

廉子民
2023-03-14

我知道,如果我们在消费者组中有多个分区和几乎相同数量的消费者,那么处理速度会加快。如果我们想保持事件的顺序并在收到每个事件时处理它,我们如何使用多个分区和消费者来实现这一点。

在我的用例中,按顺序处理事件非常关键,否则系统会崩溃。我想使用多个分区来增加并行性,但不知何故“让它们按顺序”。

共有1个答案

强化
2023-03-14

最简单的回答:你不能

一旦将数据分割到分区,就无法保证消费顺序(即使只有一个消费者)。难道没有任何逻辑可以将数据分成多个分区,这样必须按顺序使用的消息最终会出现在同一个分区中吗?

 类似资料:
  • 我以前从没用过Kafka。我有两个测试程序访问本地Kafka实例:一个读卡器和一个写卡器。我试图调整我的制作人、消费者和Kafka服务器设置,以获得特定的行为。 我的作者: 我的本地kafka上存在三个主题:政策管理器-100、政策管理器-200、政策管理器-300。它们每个都只有1个分区,以确保所有消息都按kafka收到它们的时间进行排序。我的作者将随机选择其中一个主题并发布一条由一个数字组成的

  • 我对Kafka有一个概念上的问题。 我们有许多机器在一个主题上充当消费者,有许多分区。这些机器运行在不同的硬件设置上,将会有比其他机器具有更高吞吐量的用户。 现在,使用者和一个或多个分区之间存在直接的相关性。

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

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

  • 我刚接触Kafka,很少阅读教程。我无法理解使用者和分区之间的关系。 请回答我下面的问题。 > 消费者是否由ZK分配到单个分区,如果是,如果生产者将消息发送到不同的分区,那么其他分区的消费者将如何使用该消息? 我有一个主题,它有3个分区。我发布消息,它会转到P0。我有5个消费者(不同的消费者群体)。所有消费者都会阅读P0的信息吗?若我增加了许多消费者,他们会从相同的P0中阅读信息吗?如果所有消费者

  • 我尝试在使用邮件时进行以下错误处理: 如果出现序列化错误:在DLT中发送消息 我拥有的(2.5.1Kafka客户端的Spring kafka 2.5.5版本)如下: 现在,如果我发送不可序列化的消息,我的消息将不重试地发送到DLT- 在我的中,我有一个,捕获并重新捕获。 我应该没有重试,但我得到了2个重试,每个20秒(而不是10秒?),并在2次重试后向DLT发送了一条消息。 如果我删除errorH