当前位置: 首页 > news >正文

MQ之————如何保证消息的可靠性

MQ之保证消息的可靠性

1.消费端消息可靠性保证:

1.1 消息确认(Acknowledgements):

消费者在接收到消息后,默认情况下RabbitMQ会自动确认消息(autoAck=true)。为保证消息可靠性,可以设置autoAck=false,使得消费者在处理完消息后手动发送确认(basicAck)。如果消费者在处理过程中发生异常或者未完成处理就终止运行,那么消息在超时时间内将不会被删除,会再次被RabbitMQ投递给其他消费者。

1.2 死信队列(Dead Letter Queue):

当消息不能被正常消费时(比如达到最大重试次数),可以通过设置TTL(Time To Live)或者死信交换器(Dead Letter Exchange)将消息路由至死信队列,从而有机会后续分析和处理这些无法正常消费的消息。

2.生产端消息可靠性保证:

2.1 消息持久化:

当生产者发布消息时,可以选择将其标记为持久化(persistent).这意味着即使 RabbitMQ 服务器重启,消息也不会丢失,因为它们会被存储在磁盘上。

2.2 确认(Confirm)机制:

开启confirm回调模式后,RabbitMQ会在消息成功写入到磁盘并至少被一个交换器接受后,向生产者发送一个确认(acknowledgement)。若消息丢失或无法投递给任何队列,RabbitMQ将会发送一个否定确认(nack). 生产者可以根据这些确认信号判断消息是否成功送达并采取相应的重试策略。

RabbitMQ作为消息中间件并启用publisher confirms(发布者确认)与publisher returns(发布者退回)机制时,可以确保消息从生产者到交换机的投递过程得到更准确的状态反馈。

在这里插入图片描述

http://www.lryc.cn/news/335635.html

相关文章:

  • TrollInstallerX官方一键安装巨魔商店
  • 生成随机图片验证码
  • 【0280】《数据库系统概论》阅读总结(附xmind思维导图)
  • 数据结构(二)----线性表(顺序表,链表)
  • 为什么你选择成为一名程序员?
  • 【Android】系统启动流程分析 —— SystemServer 处理过程
  • Web前端—属性描述符
  • SpringBoot及其特性
  • 「JavaEE」初识进程
  • 计算机视觉——图像特征提取D2D先描述后检测特征提取算法原理
  • The “from“ argument must be of type string. Received undefined——vue报错记录
  • 汽车4S行业的信息化特点与BI建设挑战
  • JSX 和 HTML 之间的区别
  • AI日报:GPT-4-Turbo正式版自带读图能力;Gemini1.5Pro开放API;SD3将于4月中旬发布;抖音宫崎骏AI特效爆火
  • IDEA 宝贝插件
  • [C语言][数据结构][链表] 单链表的从零实现!
  • oracle rac打补丁后sqlplus / as sysdba ora-12537
  • TCP-IP详解卷一:协议——阅读总结
  • 【带源码】如何开发一个视频打赏,付费观看视频的系统?
  • Linux--进程的概念(一)
  • 大话设计模式——15.观察者模式(Observer Pattern)
  • MySQL 主从复制部署(8.0)
  • 大话设计模式——16.命令模式(Command Pattern)
  • react17+18 中 setState是同步还是异步更新
  • Unity框架,ET框架8.1版本的打包流程记录
  • windows访问wsl中的docker
  • golang主要优缺点
  • 浅谈Redis和一些指令
  • AI大模型探索之路-应用篇1:Langchain框架概述—快速构建大模型应用
  • Google Chrome 常用设置