通过RabbitMQ 死信队列实现延迟MQ消息,消息延迟,MQ延迟队列

文章目录

  • 通过RabbitMQ 死信队列实现延迟MQ消息,消息延迟,MQ延迟队列
        • 1、延迟消息原理
        • 2、如何在Springboot 下创建延迟消息队列
        • 3、可能会遇到的问题:项目启动报错
        • 4、可能会遇到的问题:在设置了统一的过期时间后,又在某几条消息上设置了过期时间,但是预期结果不一致

通过RabbitMQ 死信队列实现延迟MQ消息,消息延迟,MQ延迟队列


1、延迟消息原理

客户端向MQ服务器发送一条队列消息,该消息设置了TTL【该消息在超过TTL的时间内没有被消费,就会被视为是死信】,但是不给该队列提供消费者,在消息超时后,由死信交换机转发该消息到指定的消费者,以实现延迟队列。

简单点说,就是向一个没有消费者的队列发送一条有过期机制的消息,消息过期后死信交换机DLK把消息转发给一个没有生产者的队列,以实现消费。

2、如何在Springboot 下创建延迟消息队列

只需要正常的创建2个队列,然后设置三个属性即可创建延迟消息队列

    @Bean(DEAD_LETTER_PROD)
    Queue a() {
        Map args = Maps.newHashMap();
        // RabbitMqExch

你可能感兴趣的:(中间件,-,rabbit,mq,SpringBoot体系全相关)