一、数据丢失的三个场景 一条消息从生产者发送到消费者消费的过程: 可以看出,一条消息整个过程要经历两次的网络传输: 从生产者发送到RabbitMQ服务器,从RabbitMQ服务器发送到消费者 在消费者未消费前存储在队列(Queue)中 所以可以知道,有三个场景下是会发生消息丢失的: 生产者发送消息到 ...
转载
2021-10-06 21:21:00
277阅读
2评论
一、数据丢失的三个场景 一条消息从生产者发送到消费者消费的过程: 可以看出,一条消息整个过程要经历两次的网络传输: 从生产者发送到RabbitMQ服务器,从RabbitMQ服务器发送到消费者 在消费者未消费前存储在队列(Queue)中 所以可以知道,有三个场景下是会发生消息丢失的: 生产者发送消息到 ...
转载
2021-10-06 21:21:00
871阅读
2评论
前言面试经常会被问到“怎么避免RabbitMQ消息不丢失”。首先需要明确的是,RabbitMQ在默认情况并不会保证消息的不丢失。不过RabbitMQ提供了一些机制,可以有效的避免消息在传输和处理过程中不丢失。可能导致消息丢失的环节先通过RabbitMQ的架构模型看一下消息的处理过程:发布者和RabbitMQ建立连接发送消息至交换机。交换机和队列绑定,将消息路由到队列中。消费者和RabbitMQ建立
转载
2024-08-12 11:45:42
38阅读
RabbitMQ的TTL全称为Time-To-Live,表示的是消息的有效期。消息如果在队列中一直没有被消费并且存在时间超过了TTL,消息就会变成了"死信" (Dead Message),后续无法再被消费了。设置TTL有两种方式:第一种是声明队列的时候,在队列的属性中设置,这样该队列中的消息都会有相
转载
2020-03-30 09:43:00
371阅读
2评论
浅谈 RabbitMQ(一)工作模型与 Exchange 类型 一、消息传递分析 RabbitMQ的具体结构图参考笔者上一篇文章,下面画个消息传递的简图 从上图可知,要确保一个消息正确的传递,需要在四个传递阶段都能正确传递: 确保消息成功由生产者发送到RabbitMQ服务器 确保消息被交换机路由到正 ...
转载
2021-08-16 13:40:00
96阅读
2评论
1.背景在面试过程中,该题目是毕不可少的必答题。博主在这里经过多方面整理,总结了下文。如果有面试需求,可以适当的背背。2.消息投递的过程先来说明一个概念,什么是可靠投递呢?
原创
2022-01-16 16:16:16
389阅读
1.mq原则 数据不能多,也不能少,不能多是说消息不能重复消费;不能少,就是说不能丢失数据。如果mq传递的是非常核心的消息,支撑核心的业务,那么这种场景是一定不能丢失数据的。 2.丢失数据场景 丢数据一般分为三种,一种是mq把消息丢了,一种就是消费时将消息丢了。下面从rabbitmq和kafka分别
转载
2020-06-04 21:08:00
300阅读
2评论
消息持久化,当然前提是队列必须持久化RabbitMQ确保持久性消息能从服务器重启中恢复的方式是,将它们写入磁盘上的一个持久化日志文件,当发布一条持久性消息到持久交换器上时,RabbitMQ会在消息提交到日志文件后才发送响应。一旦消费者从持久队列中消费了一条持久化消息,RabbitMQ会在持久化日志中把这条消息标记为等待垃圾收集。如果持久化消息在被消费之前RabbitMQ重启,那么RabbitMQ会
原创
2022-11-14 19:50:36
190阅读
RabbitMQ一般情况很少丢失,但是不能排除意外,为了保证我们自己系统高可用,我们必须作出更好完善措施,保证系统的稳定性。 下面来介绍下,如何保证消息的绝对不丢失的问题,下面分享的绝对干货,都是在知名互联网产品的产线中使用。 1.消息持久化 2.ACK确认机制 3.设置集群镜像模式 4.消息补偿机
转载
2020-02-05 10:21:00
300阅读
2评论
正在学RabbitMQ,特此记录一下,这里就不讲RabbitMQ基础了,直接进入主题。文章目录 生产端可靠性投递 事务消息机制 confirm消息确认机制 消息持久化 消息入库 消费端消息不丢失 我们都知道,消
转载
2022-05-25 08:53:24
1241阅读
消息一旦发送到MQ后,会返回一个结果给发送者,表示消息是否处理成功。一般配合重试机制使用,在消费者出现异常时利用本地重试,达到一定次数后,如果消息依然失败,将消息投递到异常交换机,交由人工处理了。消费者确认机制,消费者处理消息后可以向MQ发送ack回执,MQ收到ack回执后才会删除该消息,SpringAMQP支持3中模式。消息持久化,MQ默认是保存在内存当中的,开启持久化功能可以确保缓存在MQ中的消息不丢失。RabbitMQ-如何保证消息不丢失?
消息堆积 解决方案: 增加消费者或后台相关组件的吞吐能力 增加消费的多线程处理 根据不同的业务实现不同的丢弃任务,选择不同的策略淘汰任务 默认情况下,RabbitMQ消费者为单线程串行消费,设置并行消费两个关键属性,他们设置的是对每个消费者在初始化的时候设置的并发消费者个数,prefetchCoun ...
转载
2021-07-17 11:18:00
1831阅读
2评论
大家好,我是小菜。一个希望能够成为 吹着牛X谈架构 的男人!如果你也想成为我想成为的人,不然点个关注做个伴,让小菜不再孤单!本文主要介绍 RabbitMQ的消息丢失问题如有需要,可以参考如有帮助,不忘 点赞 微信公众号已开启,小菜良记,没关注的同学们记得关注哦!是的,最终是对 RabbitMQ 下手了!面试中常见的RabbitMQ面试题也是多了去了,常见的如下:
原创
2022-03-25 13:41:20
152阅读
文章目录RabbitMQ如何防止消息丢失及重复消费一、消息丢失1.1、生产者没有成功把消息发送到MQ1.1.1、confirm(发布确认)
原创
2022-07-13 14:09:05
1275阅读
本文介绍RabbitMQ消息丢失的原因以及解决方案(即:如何保证消息不丢失)。 消息在生产者、MQ服务器、消费者都可能丢失消息,本文分析这三处消息丢失的原因以及解决方案。 对于消息队列(MQ)来说,消息丢失/消息重复/消费顺序/消息堆积是比较常见的问题,
原创
2022-02-15 15:06:38
1858阅读
参考文章:https://www.liangzl.com/get-article-detail-140885.html
原创
2021-07-07 11:49:44
584阅读
如何保证消息的可靠性投递2.1 消息落库打标 + confirm机制2.2 消息幂等性如何保证?1. 消息可能出现丢失的情况消息可能出现丢失的情况如上图所示,针对生产者、MQ、消费者三个维度都可能出现消息丢失生产者在向MQ服务器Broker发送message时,可能由于网络原因,消息发送失败,在传输过程中丢失
原创
2021-07-08 10:03:24
1216阅读