RabbitMQ-消息丢失

简介: RabbitMQ-消息丢失

对于消息丢失的几种情况介绍

1.生产者发送消息到RabbitMQ中,如果没有对应Exchange、或者Exchange没有匹配队列,或者队列没有任何消费者都可能导致消息的丢失

对于发送失败的,我们可以使用生产者确认机制来让发送失败的消息回传给生产者,或者使用备份交换机的方式来处理发送失败的消息

2.rabbitMQ服务重启、关闭、宕机情况下导致的消息丢失

RabbitMQ持久化包括三个部分:Exchange的持久化、Queue的持久化和Message的持久化

我们要持久化消息,则必须持久化Queue,因为Message是存储在Queue上的,如果Queue不持久化的话,Message即便是持久化了,重启服务也会因为没有存储的载体导致Message的丢失

这里注意下,将所有的消息持久化,这样会严重影响RabbitMQ的性能,对于可靠性不是那么高的消息可以不采用持久化来提高系统整体的吞吐量

3.消费者设置autoAck为true,可能导致消费者还没有来得及消费就宕机了,其实也是变相的消息丢失

这个需要我们在消费消息时,设置autoAck为true,同时注意解决消费异常的情况。


相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 JavaScript 前端开发
JavaScript 连接消息(RabbitMQ)
JavaScript 连接消息(RabbitMQ)
JavaScript 连接消息(RabbitMQ)
|
消息中间件 NoSQL 关系型数据库
RabbitMQ消息丢失、积压、重复等解决方案
RabbitMQ消息丢失、积压、重复等解决方案
RabbitMQ消息丢失、积压、重复等解决方案
|
消息中间件
13、RabbitMQ教程-消息的顺序性
13、RabbitMQ教程-消息的顺序性
163 0
|
消息中间件
12、RabbitMQ教程-使用消息确认机制confirm带来的问题
12、RabbitMQ教程-使用消息确认机制confirm带来的问题
135 0
|
消息中间件
11、RabbitMQ教程-消息确认机制confirm
11、RabbitMQ教程-消息确认机制confirm
193 0
|
消息中间件 API
10、RabbitMQ教程-消息的两种消费模式
10、RabbitMQ教程-消息的两种消费模式
435 0
|
消息中间件 存储 安全
|
消息中间件 存储 NoSQL
springcloud:springboot整合RabbitMQ|RabbitMQ保证消息可靠性(三)
上一章我们讲解了rabbitmq的四种交换机类型、七种通讯方式。本章我们将整合springboot来向大家完整演示rabbitmq的使用,并说明如何保证消息的可靠性。
427 0
springcloud:springboot整合RabbitMQ|RabbitMQ保证消息可靠性(三)
|
消息中间件 Java 网络架构
SpringBoot整合RabbitMQ 实现五种消息模型
SpringBoot整合RabbitMQ 实现五种消息模型
202 2
|
9月前
|
消息中间件 Linux
centos7 yum快速安装rabbitmq服务
centos7 yum快速安装rabbitmq服务
139 0