当前位置: 首页 > 网络应用技术

RabbitMQ仍然是延迟的队列吗?不错!

时间:2023-03-07 14:43:12 网络应用技术

  在许多情况下,我们需要延迟队列。但是,默认情况下,RabbitMQ不提供延迟的队列相关功能。我们还可以实现延迟队列的功能以及新闻队列的设置时间和到期时间。今天,我们将一起看看。

  RabbitMQ实际上提供了延迟的延迟队列插头。我们有时间谈论这个。

  如果您还没有阅读上一篇文章,则可以转到第一篇文章,这有助于理解本文:

  让我们谈谈何时需要延迟队列。

  举一些简单的例子。

  在许多情况下,我们需要延迟队列。

  也许有些朋友说直接执行常规任务并不是更方便?如果项目中只有这样的延迟队列,那么似乎也可以从事计时任务,但是如果有很多这样的情况在项目中,定时任务显然不是最好的解决方案。我们可以通过延迟队列实现它。通用解决方案。

  延迟队列的想法也非常简单,即,我们提到的DLX(死信开关)+TTL(Newsout Time)的上一篇文章。

  我们可以将致命队列视为延迟队列。

  具体而言,这是:

  该消息进入了死信,因为它没有被消费者消耗。目前,我们有一个消费者在“蹲”的死字队列中。消息一进入死者队列,我们就立即被消耗掉了。

  这是延迟队列的实现。这很简单吗?

  接下来,通过简单的情况,Matsushita将通过简单的情况来演示延迟队列的特定实现。

  首先准备启动兔子。

  然后,我们创建一个Spring Boot项目来引入RabbitMQ依赖性:

  然后在应用程序中配置RabbitMQ的基本连接信息。Properties::

  接下来,我们将配置两个消息队列:一个普通队列,一个死信队列:

  尽管此配置代码稍长,但原理实际上很简单。

  接下来,我们为死信队列配置消费者,如下:

  收到消息后,打印出来。

  一切都结束了。

  启动项目。

  最后,我们在单元测试中发送一条消息:

  关于这一点没有什么可说的,即发送普通消息。10秒钟后,此消息将在致命队列的消费者中打印出来。

  好吧,这是使用兔子延迟队列?的想法

  小朋友在公共帐户的背景下回复了该文章的标题,您可以下载本文的情况?

  作者:江南(Jiangnan)的一条小鱼,《春季靴子 +vue Full Stack Development》的作者,作者是“ Spring Security”的作者。