Redisson 延时队列 延时严重问题

延时队列原理我在这篇文章讲了

罗政:Redisson 延时队列 原理 详解


十分建议先把原理看了


我们一个项目是做消息推送的, 分钟量达到了几百万 需求是要设置5秒以上的延时推消息

当初我想了几个方案:

  • 定时器轮询数据库
  • mq做延时推送
  • redisson做延时推送


定时器轮询数据库 这种方案直接pass, 需求是要5秒的延时推送,你不可能弄个秒级的定时器去扫库,这样迟早会出问题。

mq做延时推送,当初也测试过,如果堆积了。消息绝达不打5秒的延时。

redisson 刚好,由于是采用了redis做延时队列,性能超高,而且还能持久化,到线上推送效果也表现极好,没出过问题( 前提是我二次定制开发过 )。


下面是我开发环境测试结果

当我设置了14511条数据到redisson延时队列时,取出来的时间在本身的延时时间上还延时了198636多毫秒 。而且延时时间随着数据增加而增加。

我想这不是完蛋了吗。我想这完全没有发挥redis的优势。于是我基于redisson 进行了二次开发( 集群思想 )。

下面是我优化后的测试结果:

10万多条数据,真实延时时间最大33399毫秒,已经表现很好了,毕竟我开发环境redis特别垃圾。

由于开发不易,可以在这个上面下载我定制后的源码,不用担心代码性能,这个是我们线上已经用了一年多了。 你也可以压测下。


redisson 延时队列延迟问题定制开发


写这个东西也真的不容易,我也不想放到平台去卖,但是真的是知识产权,真的可以解决你线上的问题!!!

代码有问题可以及时联系我,qq:657455400

支付宝打赏 微信打赏

如果文章对您有帮助,您可以鼓励一下作者