26、Kafka:Kafka优化之实现延时队列

本文详细介绍了如何利用Kafka实现延时队列,以解决订单创建后30分钟未支付自动取消的业务场景。方案涵盖主题创建、消费者轮询、消息时间判断与状态更新等核心步骤,并提供了一种通过控制offset实现延迟处理的实用方法。

Kafka优化之实现延时队列

应⽤场景

订单创建后,超过30分钟没有⽀付,则需要取消订单,这种场景可以通过延时队列来实现

具体方案

 

  • kafka中创建相应的主题
  • 消费者消费该主题的消息(轮询)
  • 消费者消费消息时判断消息的创建时间和当前时间是否超过30分钟(前提是订单没⽀付)
  • 如果是:去数据库中修改订单状态为已取消
  • 如果否:记录当前消息的offset,并不再继续消费之后的消息。等待1分钟后,再次向kafka拉取该offset及之后的消息,继续进⾏判断,以此反复。

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: