首页 > 其他分享 >如何防止队列中的信息丢失?

如何防止队列中的信息丢失?

时间:2023-03-21 21:22:42浏览次数:37  
标签:listener retry 队列 spring rabbitmq 重试 丢失 防止

如何防止队列中的信息丢失?

我们先用两个名词来概括往队列中放入消息的行为处理队列中消息的行为,称之为生产者消费者

应用场景:

订单请求过来,为了快速的响应给前端,需要把相关订单信息直接放入消息队列也就是生产者,然后直接响应前端。

关于消息队列的订单信息,我们后端的业务会给予它们处理。(无论是保存到数据库还其他业务等)

但是在处理队列中的信息时难免会有异常,当有了异常,消费者就会重新再操作这个信息,既然这个消息有了异常,我们就需要把他保存下来(让人工处理),可以使用数据库,但是既然mq能保存数据,为啥多此一举呢?

只要在报异常时,把该信息保存到新的队列,这个队列就叫做死信队列

(死信队列的信息都需要人工去处理)

image-20230321202117475

当Rabbitmq配置设置为自动应答且程序有异常,就会一直重试...

RabbitMQ配置

spring.rabbitmq.listener.simple.retry.enabled=true
#重试间隔时间 默认1000ms
spring.rabbitmq.listener.simple.retry.initial-interval = 1000ms
#重试间隔倍数
spring.rabbitmq.listener.simple.retry.multiplier=2
#最大重试次数
spring.rabbitmq.listener.simple.retry.max-attempts=10
#最大重试间隔
spring.rabbitmq.template.retry.max-interval=30000

image-20230321211302750

将报错的数据放入死信队列

标签:listener,retry,队列,spring,rabbitmq,重试,丢失,防止
From: https://www.cnblogs.com/xhlin/p/17241508.html

相关文章

  • 为什么不建议用redis做消息队列
    redis的list做队列其实还是很爽的,简单,一个读一个写即可,而且基本每个系统都会使用redis,接入没有附加成本,也没有额外的学习成本。如果需要订阅模型,写三个队列,然后三个消费者......
  • 消息队列简介
    什么是消息队列消息队列是一种异步的服务间通信方式,适用于无服务器和微服务架构。消息在被处理和删除之前一直存储在队列上。每条消息仅可被一位用户处理一次。消息队列......
  • RabbitMQ消息队列搭建以及迁移
    一、RabbitMQ框架rabbitmq系统架构图通过路由将交换机和队列进行绑定,从而实现消息的发送和接收rabbitmq基本概念1、Message(消息)消息是不......
  • springboot防止XSS攻击和sql注入
     文章目录1.XSS跨站脚本攻击①:XSS漏洞介绍②:XSS漏洞分类③:防护建议2.SQL注入攻击①:SQL注入漏洞介绍②:防护建议3.SpringBoot中如何防止XSS攻击和......
  • zbus logo消息队列、服务总线 zbus
    轻量级服务总线/消息队列1)多种消息模式--支持生产者/消费者,发布订阅,RPC2)丰富的API--C/C++/C#/JAVA/Python/Node.JS跨平台、多语言支持3)开放协议标准--原生兼容HTTP协议(长......
  • [数据结构][队列]链表模拟队列操作
    #include<iostream>#include<cstdio>usingnamespacestd;#defineMAXSIZE100typedefintStatus;typedefintElem;typedefstructQNode{/*data*/Elemdata;stru......
  • Java开发 - 消息队列之Kafka初体验
    目录​​前言​​​​Kafka​​​​什么是Kafka​​​​Kafka软件结构​​​​Kafka的特点​​​​怎么启动Kafka​​​​下载Kafka​​​​配置Kafka ​​​​Zookeeper​......
  • .NET 中RabbitMQ消息队列的使用
    一、安装RabbitMQ1.下载安装包1)安装RabbitMQ需要依赖erlang语言环境,所以需要我们下载erlang的环境安装程序。1)erlang环境安装程序下载路径:https......
  • 【项目实战典型案例】16.消息队列作用和意义
    目录​​一:背景介绍​​​​二:消息队列​​​​消息队列简介​​​​解耦​​​​异步​​​​流量削峰​​​​原理​​​​1.ArrayBockingQueue:​​​​2.Socket​​​​3......
  • 【C 数据结构】循环队列
    循环队列预先分配好数组空间#defineBUFFER_SIZE1024//在栈区分配空间intbuf[N];//在堆区分配空间int*buf;buf=(int*)malloc(BUFFER_SIZE*sizeof(int))......