当前位置:   article > 正文

kafka之延迟队列_kafka延迟队列

kafka延迟队列

kafka之延迟队列

一、背景

用户营销业务场景中存在大量延迟消息处理,如用户访问某物品未下单,15分钟后给该用户推送一张优惠券等,需要支持上亿用户推送,并且低延迟。现有技术方案:

  1. redis过期监听 :内存存储,不适用大数据量,并且过期删除不精确,存在惰性删除,可能改key一直没有过期;
  2. JDK自带延迟队列:单机,非分布式;
  3. rocketMQ: 延迟时长最大24小时,业务场景需要支持天以上,存储成本变大
  4. 数据库+定时任务:引入新数据库、大数据量还需要进行分库分表,并且存在延迟,对数据库压力较大
    具体可以参考:https://mp.weixin.qq.com/s/OmbyxkufVm-XzwIv_A514w

以上技术缺点和本身系统大量应用kafka中间件,吞吐量高,考虑基于kafka开发延迟队列组件,同时也不需要引入第三方中间件

二、延迟队列设计思路

设计思路来自RocketMQ延迟消息:使用rocketmq延迟消息时,服务端实际上发送到另一个topic,并通过周期任务轮询检查延迟消息是否到期,到期才转发到目标topic,达到延迟效果。
参考该思路,自建延迟消息topic,在客户端消费者消费延迟消息,检查是否到期,到期则转发到目标topic&

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/798875
推荐阅读
相关标签
  

闽ICP备14008679号