数据库|领导:谁再用 Redis 实现过期订单关闭,立马滚蛋!!( 五 )


实现的复杂度上(包含用到的框架的依赖及部署):
Redission > RabbitMQ插件 > RabbitMQ死信队列 > RocketMQ延迟消息 ≈ Redis的zset > Redis过期监听 ≈ kafka时间轮 > 定时任务 > Netty的时间轮 > JDK自带的DelayQueue > 被动关闭
方案的完整性:
Redission ≈ RabbitMQ插件 > kafka时间轮 > Redis的zset ≈ RocketMQ延迟消息 ≈ RabbitMQ死信队列 > Redis过期监听 > 定时任务 > Netty的时间轮 > JDK自带的DelayQueue > 被动关闭
不同的场景中也适合不同的方案:

  • 自己玩玩:被动关闭
  • 单体应用 , 业务量不大:Netty的时间轮、JDK自带的DelayQueue、定时任务
  • 分布式应用 , 业务量不大:Redis过期监听、RabbitMQ死信队列、Redis的zset、定时任务
  • 分布式应用 , 业务量大、并发高:Redission、RabbitMQ插件、kafka时间轮、RocketMQ延迟消息
总体考虑的话 , 考虑到成本 , 方案完整性、以及方案的复杂度 , 还有用到的第三方框架的流行度来说 , 个人比较建议优先考虑Redission+Redis、RabbitMQ插件、Redis的zset、RocketMQ延迟消息等方案 。
-End-
最近有一些小伙伴 , 让我帮忙找一些 面试题 资料 , 于是我翻遍了收藏的 5T 资料后 , 汇总整理出来 , 可以说是程序员面试必备!所有资料都整理到网盘了 , 欢迎下载!