springboot学习(十三):RabbitMQ的使用 实现消息延迟消费

本文介绍了如何在SpringBoot中利用RabbitMQ实现消息的延迟消费和失败重试。通过设置消息有效期(TTL)和死信路由(DLX),当消息处理失败时,消息会被自动重试。详细讲解了配置类MQConfig、消费者Consumer、生产者Producer的实现,并提供了测试说明。
摘要由CSDN通过智能技术生成

说明

本篇博文主要记录了springboot中rabbitmq的使用。使用rabbitmq实现消息消费处理失败后的延迟重试。

正文

  rabbitmq不支持延迟任务,所以使用rabbitmq的支持的其他特性来实现延迟任务。这里主要使用了消息的有效期(TTL)死信路由DLX。消息的有效期可以通过队列设置,也可以通过设置消息的相关属性。死信路由的本质是一个Topic路由器,通过在创建缓冲队列时声明"x-dead-letter-exchange"属性,将缓冲队列与DLX绑定,当消息在缓冲队列到期时,会自动通过DLX路由到与消息携带的路由关键字(routingKey)匹配的队列中。
  简单来说,实现消息的失败重试的总体流程为:消息生产者将消息发送到普通队列,消费者接受到后进行处理,若处理失败,将该消息发送到缓冲队列,消息在队列到期后会自动的被发送到普通队列,再次消费。原理图如下:
在这里插入图片描述

1.配置类MQConfig

配置类用来创建生产者,消费者,创建队列,交换机和绑定关系。

@Configuration
public class MQConfig {

    //创建消费者
    @Bean
   
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值