栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

延时队列的实现原理

延时队列的实现原理

方案:

rabbitMq实现延时队列(TTL(Time to live) + DXE(Dead Letter Exchanges))-Redis的ZSet实现Redis 过期回调(Redis的key过期回调事件,也能达到延迟队列的效果,简单来说我们开启监听key是否过期的事件,一旦key过期会触发一个callback事件)定时器轮询遍历数据库记录 JDK的DelayQueue(完全二叉堆 + 根据时间排序,到时间才能取出)JDK ScheduledExecutorService (定时任务)时间轮(netty ,kafka)quartz等定时任务RocketMQ实现:延时消息,将消息放入不同级别的缓冲队列,在对应时间后,定时线程将消息在写入对应topic的普通消息中.实现原理(4种实现方案)
1.代理实现
2.时间轮和delay-commit-log实现
3.时间轮和时间file实现
4.基于rocketmq 18个等级来改造

参考:
https://gitee.com/venus-suite/rocketmq-with-delivery-time/wikis
https://cloud.tencent.com/developer/article/1581368
https://blog.51cto.com/u_14988994/2549690
https://zhuanlan.zhihu.com/p/75710822
https://www.jianshu.com/p/a8c1458998aa

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/721614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号