rabbitmq如何保证消息不丢失

rabbitmq的消息流

信息发送者-交换器-队列-消息消费者

哪个环节都容易丢失消息

  • 消息未到交换器
  • 消息未到队列
  • 队列中的消息丢失
  • 消费者未接受到消息

如何判断消息是否丢失?

利用publisher confirm机制来判断。

消息丢失如何处理?

  1. 回调方法即时重发
  2. 保存日志
  3. 保存到数据库然后定时重发,成功发送后即刻删除表中数据

MQ默认是内存存储消息,开启持久化功能可以确保缓存在MQ中的消息不丢失。

交换机持久化

队列持久化

消息持久化

相关推荐
予枫的编程笔记8 小时前
从入门到精通:RabbitMQ全面解析与实战指南
java·开发语言·后端·rabbitmq·ruby
予枫的编程笔记1 天前
【Java进阶2】Java常用消息中间件深度解析:特性、架构与适用场景
java·kafka·rabbitmq·rocketmq·activemq
better_liang1 天前
每日Java面试场景题知识点之-RabbitMQ消息重复消费问题
java·分布式·消息队列·rabbitmq·幂等性
無欲無为1 天前
Spring Boot 整合 RabbitMQ 详细指南:从入门到实战
spring boot·rabbitmq·java-rabbitmq
程序员阿鹏2 天前
RabbitMQ持久化到磁盘中有个节点断掉了怎么办?
java·开发语言·分布式·后端·spring·缓存·rabbitmq
TT哇4 天前
【RabbitMQ】@Autowired private RabbitTemplate rabbitTemplate;
java·分布式·rabbitmq
AC赳赳老秦4 天前
企业级人工智能平台选型深度分析:天翼云 DeepSeek 与开源解决方案的部署考量与成本博弈
人工智能·elasticsearch·zookeeper·rabbitmq·github·时序数据库·deepseek
csdn_aspnet4 天前
实现 RabbitMQ 实现 .NET 6 Web API 之间的通信
rabbitmq·.net6