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

如何为具有多个分区的主题保留消息序列?

宗弘扬
2023-03-14

我想要任何关于Kafka如何维护消息序列的信息/解释,当消息被写入多个分区的主题时。例如,我有多个消息生成器,每个消息生成器按顺序生成消息,并用超过1个分区编写Kafka主题。在这种情况下,消费者组将如何工作来消费消息。

共有1个答案

阎璞瑜
2023-03-14

Kafka只提供一个分区内记录的总顺序,而不提供主题中不同分区之间的总顺序。即使在一个分区中,如果启用了retries,并且max.in.flight.requests.per.connection大于1,您仍然可能遇到无序事件。

解决办法是创建一个只有一个分区的主题,尽管这意味着每个使用者组只有一个使用者进程。

 类似资料:
  • 假设一个主题有3个kafka分区,我希望我的事件按小时窗口,使用事件时间。 当某个分区位于当前窗口之外时,kafka使用者是否会停止读取该分区?还是打开一个新窗口?如果它正在打开新的窗口,那么,如果一个分区的事件时间与其他分区相比会非常倾斜,那么从理论上讲,它不可能打开无限数量的窗口,从而耗尽内存吗?当我们重播一些历史时,这种情况尤其可能发生。 我一直试图从阅读留档中得到这个答案,但是在分区上找不

  • 我有一个带有2个分区的源主题,我正在用同一个应用程序启动2个kafka streams应用程序。id,但不同的接收器主题。 1) 这两个应用程序实例是否会从不同的分区接收数据? 2)如果其中一个应用程序被杀死,另一个实例会自动从两个实例中消耗吗? 3) 我如何证明上述情况?

  • 请参阅下面的更新以显示潜在的解决方案 我们的应用程序使用2个主题作为KTables,执行左连接,并输出到一个主题。在测试过程中,我们发现当我们的输出主题只有一个分区时,这项功能可以正常工作。当我们增加分区的数量时,我们注意到生成到输出主题的消息数量减少了。 在启动应用程序之前,我们用多个分区配置测试了这一理论。使用1个分区,我们可以看到100%的消息。使用2,我们可以看到一些消息(少于50%)。对

  • 我正在开发一个使用的软件。我有一个用户订阅了多个主题,我想知道是否有一个订单接收来自这些主题的消息。我在我的电脑上尝试了一些组合,但我需要确定这一点。例 null [编辑]我想指定这两个主题各有一个分区,并且只有一个生产者和一个消费者。我需要首先阅读来自第一个主题的所有消息,然后阅读来自另一个主题的消息

  • 我使用的是Kafka 0.8.2,而我的使用者却出现了一个错误:“OFFSET commit FAILL with...”。当查看主题“__consumer_offsets”时。我看到它有50个分区计数。正常吗?我只能通过删除所有的Kafka日志并重新启动我的Kafka服务器来解决这个问题。是否有一种方法,我可以删除这个主题时,它达到一定数量的分区,还是我提交的偏移量是错误的? 下面是我提交偏移的

  • 我读了很多文章,但没有找到如何使用Spring Integration Kafka配置具有多分区主题(在运行时创建主题)的Producer。 我正在使用github链接来理解并为我的应用程序配置kafka。 请提供解决方案 还有一点,KafKaheader.MessageKey的用途是什么。 我得到空指针异常。下面是提及日志: 谢谢