消息队列RabbitMQ - 深入了解高级特性

本文深入探讨RabbitMQ的高级特性,包括消息重试机制及其规则,延时消息的概念、应用场景与实现方案,以及死信队列的核心概念和消息路由流程。内容覆盖了消息如何在不同场景下处理,如超时未响应的重试、按需延迟投递以及处理失败消息的死信Exchange。
摘要由CSDN通过智能技术生成

🎈本篇文章主要会设计会涉及以下内容:

  • MQ消息的重试机制以及重试规则的配置
  • 什么是延时消息?
  • MQ延时消息的两种实现方式
  • 死信Exchange

一、🎈消息重试机制

消息队列RabbitMQ版服务端有默认的消息重试机制,不支持您在Consumer客户端重新配置消息重试机制和关闭消息重试机制。消息队列RabbitMQ版服务端默认的消息重试机制如下:

  • 如果您没有开启Consumer客户端消费消息,就不会触发消息重试。
  • 如果您开启了Consumer客户端消费消息,消费失败,即Consumer客户端一分钟内没有应答消息,则触发消息重试。

重试规则

  • 重试期间,任何一次消费成功,即Consumer客户端应答消息,则立即停止消息重试。
  • 重试时间间隔为60秒。
  • 重试最多16次。超过16次,则停止重试。您可以选择:
    • 丢弃消息:如果您没有为重试失败的消息所在的Queue配置死信Exchange,则消息重试失败后被丢弃。
    • 将消息发送至死信Exchange:如果您为重试失败的消息所在的Queue配置了死信Exchange,则消息重试失败后被发送到死信Exchange,并根据RoutingKey和Binding Key被路由至目标Queue。目标Queue中的消息支持查询和导出。
Spring:
  # 消息队列配置
  rabbitmq:
    host: 8.129.42.30                  #rabbitmq的连接地址
    port: 5672                         #rabbitmq的连接amqp端口号
    virtual-host: /                    #rabbitmq的虚拟host
    username: sdjy                     #rabbitmq的用户名
    password: sdjy@rabbitmq2021        #rabbitmq的密码
    listener:
      simple:
        acknowledge-mode: manual       # 确认消息-手动确认
        retry:
          enabled: true                # 开启重试
          max-attempts: 3              # 重试次数,默认为3次
          initial-interval: 5000       # 重试间隔时间(单位毫秒
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值