gpt4 book ai didi

apache-kafka - 我们可以使用 Kafka Streams API 对消息进行顺序处理吗?

转载 作者:行者123 更新时间:2023-12-05 04:04:12 24 4
gpt4 key购买 nike

我们有一些消息需要保持顺序。我们已决定将所有消息从特定源发送到分区,以便保持消息序列(多个源可以生成到同一分区,但一个源不能生成到多个分区)并且我们将能够使用其 key 识别每个来源。

现在,我们需要使用这些消息并进行一些处理。我们对消费的消息进行多次独立操作(例如,将它们存储在数据库中,转发它们等)。现在,我纠结于为此使用 Kafka Streams API 还是 Consumer API。

注意:我不能有大量的主题(例如,我不能为每个来源创建一个主题,因为来源会很多)。虽然我可以通过键对消息进行分组以识别源,但对于使用 Streams,我想要的是键的消息顺序。

用例:我想按顺序将这些消息提交到数据库中,并且我想按顺序转发这些消息。

那么如何使用 Streams API 按顺序处理消息?

最佳答案

We have decided to send all messages from a particular source to a partition

Kafka 保证单个分区内的顺序,按照它们到达代理的顺序,而不是任何其他字段或时间。所有 Kafka 客户端(Consumer、Streams、第三方库)都尊重这一事实。

不过,一般来说,如果您将消息时间戳作为数据库插入事件的一部分,那么就可以按键分组,按时间戳排序。不过,这将取决于数据库。

如果您已经按已知源 key 进行分区,为什么不在流应用程序中按该 key 进行过滤?否则,您将不得不使用 Consumer API,因为它允许您分配特定的分区(Processor API,可能,但没有使用过)

关于apache-kafka - 我们可以使用 Kafka Streams API 对消息进行顺序处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52991177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com