黑马消息队列-rabbitMQ2-生产者重连机制-生产者确认机制-数据持久化-LazyQueue-消费者确认机制-失败重试机制-重试耗尽告警手动处理-

消息的可靠性问题,保证状态一致性

生产者的可靠性

  • 生产者重连
  • 生产者连接失败的失败重试连接
  • 生产者确认
  • 到达交换机后,路由失败,基本不会出现这种情况;
  • 到达交换机后,到达队列;
  • 到达交换机后,到达队列后,持久化;
  • 确认时选异步回调 以下2种配置都要写
  • ConfirmCallback 确认 "消息到交换机";
  • ReturnCallback 确认 "消息从交换机到队列"。
  • 生产确认配置
  • 编写消息成功或失败后的回调函数 ConfirmCallback 确认 "消息到交换机";
  • 实际代码 ConfirmCallback 确认 "消息到交换机";
  • 生产者确定代码 ReturnCallback 确认 "消息从交换机到队列"。
  • 实际代码 ReturnCallback 确认 "消息从交换机到队列"。

MQ的可靠性

  • 数据持久化解决MQ不可靠的问题
  • MQ自动将交换机和队列设置为持久化
  • 消息持久化

  • 消息非持久化和持久化的方式对比
  • 非持久化,会出现阻塞情况
  • 消息持久化的方式

LazyQueue 直接存磁盘,消费时读取到内存

  • 控制台
  • Java代码声明队列
  • 直接存入内存

消费者的可靠性

  • 消费者确认机制
  • 一般只要配置好自动,一旦失败,就会无限次数的重复投递消息;
  • 失败重试机制 , 限制失败次数
  • 如果多次重试仍然失败该怎么办?
  • 重试耗尽后,将失败消息投递到指定交换机
  • 代码实现 创建error交换机,error队列,绑定交换机和队列
  • 这个prefix,name,havingValue里的值,可千万别写错了;

相关推荐
NE_STOP2 小时前
Vide Coding--AI编程工具的选择
java
码云数智-园园3 小时前
C++20 Modules 模块详解
java·开发语言·spring
程序员黑豆3 小时前
JDK 下载安装与配置详细教程
java·前端·ai编程
小宇宙Zz3 小时前
Maven依赖冲突
java·服务器·maven
swordbob3 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
咖啡八杯4 小时前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
十五喵源码网4 小时前
基于springboot2+vue2的租房管理系统
java·毕业设计·springboot·论文笔记
摇滚侠4 小时前
IDEA 创建 Java 项目 手动整合 SSM 框架
java·ide·intellij-idea
源分享4 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Flittly4 小时前
【AgentScope Java新手村系列】(10)实战-多Agent天气助手
java·spring boot·spring