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

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

生产者的可靠性

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

MQ的可靠性

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

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

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

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

消费者的可靠性

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

相关推荐
Buke..3 分钟前
【APP 逆向】哔哩哔哩 sign 参数逆向(上):Frida 反调试绕过与 unidbg 调用
java·开发语言·爬虫·python·安卓
竹枝溪3 分钟前
Tomcat与Servlet全套小白教程
java·servlet·tomcat·cookie·filter·session·listener
UseLessQQ40 分钟前
云计算k8s集群部署
java·kubernetes·云计算
我命由我123451 小时前
人脸识别 - 人脸识别选帧
java·人工智能·python·算法·安全·java-ee·人脸识别
宠友信息1 小时前
IM系统开发技术路线分析,即时通讯源码助力快速搭建聊天应用
java·spring boot·redis·websocket·mysql·uni-app·vue
long3162 小时前
封装(Encapsulation)
java·人工智能·ai·ai编程
yaoxin5211232 小时前
502. Java 反射 - 编写 MessageInterceptor 类
java·开发语言
风流 少年2 小时前
Spring AI 2.0:阿里云百炼平台(工作流应用)
java·后端·spring
长谷深风1112 小时前
AI Tool 设计:粒度、参数与错误恢复怎么做
java·大数据·人工智能·ai agent·agent工作流·智能体设计·ai产品设计
QQ_21696290963 小时前
【项目编号:project95315】SpringBoot公共自习室管理系统:座位预约、房间管理、签到核销、公告规则完整实战
java·spring boot·后端