为了账号安全,请及时绑定邮箱和手机立即绑定

Kafka无序消息场景处理

Kafka无序消息场景处理

手掌心 2022-07-27 16:34:52
我在 kafka 消息处理中有 3 种类型的负载:类别创建文件夹创建article_create我为此在数据库中输入理想情况下,加载应该按顺序排列:category_create -> folder_create -> article_create,因为文件夹始终属于某个类别,而文章始终属于某个文件夹。对于 folder_create 处理文件夹的类别应该已经作为 kafka 消息接收。但是在某些情况下,folder_create 加载在 category_create 之前几毫秒。在 spring boot 中我可以做什么来等待几毫秒,以防 folder_create 允许 category_create 处理然后处理 folder_create。尝试在 Spring Boot 中使用 @Retry 和 @Recover ,但我想这不适合这种情况。
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

消费者无法处理消息排序,应该在生产者端处理



查看完整回答
反对 回复 2022-07-27
?
互换的青春

TA贡献1797条经验 获得超6个赞

保证消费者以附加顺序消费消息。在您的情况下,您应该考虑安全生产者按顺序发送消息。为了实现这一点,最好让“max.in.flight.requests.per.connection=1”、“acks=all”另一个是“enable.idempotence=true”。但是那些可能会在吞吐量上咬你一口。



查看完整回答
反对 回复 2022-07-27
?
桃花长相依

TA贡献1860条经验 获得超8个赞

消费者不能保证订单,应该由生产者完成。

我们有类似的情况,我们在 DB 中创建了一个临时表来存储消息,直到我们收到所需的消息。然后处理数据库中的记录并将其删除。


查看完整回答
反对 回复 2022-07-27
  • 3 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信