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

Kafka优化之实现延时队列

应⽤场景

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

具体方案

 

  • kafka中创建相应的主题

  • 消费者消费该主题的消息(轮询)

  • 消费者消费消息时判断消息的创建时间和当前时间是否超过30分钟(前提是订单没⽀付)

  • 如果是:去数据库中修改订单状态为已取消

  • 如果否:记录当前消息的offset,并不再继续消费之后的消息。等待1分钟后,再次向kafka拉取该offset及之后的消息,继续进⾏判断,以此反复。