根据时间戳对 Kafka 消息进行排序

时间:2021-04-26 19:31:33

标签: apache-kafka apache-kafka-streams

我们遇到了相同类型的 Kafka 消息的情况,这些消息的顺序略有错误。例如,Kafka 主题有以下消息,每条消息都有一个创建时间戳:

  1. 消息 X,2021-04-26T19:16:16.010
  2. 消息 Y,2021-04-26T19:16:16.030
  3. 消息 Z,2021-04-26T19:16:16.020

由于消息产生的方式,消息Z在第三位,但根据创建时间戳应该在第二位(在消息Y之前)。错误的顺序仅适用于消息,例如在 1 秒的时间范围内。

我们有一个要求,即 Kafka 消息完全按照时间戳的顺序使用。

一种可能的解决方案是,为了使用消息,将它们短期缓存在某种持久性存储中(足够长的时间可以在上述时间范围内收集所有消息),然后以正确的顺序将它们推送到另一个 Kafka 主题中。

但我想知道,是否会有一种“卡夫卡方式”来做到这一点。一种没有持久存储。可以使用 Kafka 或 Kafka Streams 对消息进行重新排序吗?

0 个答案:

没有答案