RabbitMQ宕机后,消息100%不会丢失吗

本文探讨了在RabbitMQ宕机情况下,如何通过消息持久化(durable机制)来减少数据丢失的风险。介绍了如何设置持久化queue和发送持久化消息,但指出即使如此,仍无法100%保证消息不丢失。确保数据100%不丢失可能需要额外的机制。
摘要由CSDN通过智能技术生成
V-xin:ruyuanhadeng获得600+页原创精品文章汇总PDF

这篇文章,给不太熟悉MQ技术的同学,介绍一个生产环境中可能会遇到的问题。

目前为止,你的RabbitMQ部署在线上服务器了,对吧?然后订单服务和仓储服务都可以基于RabbitMQ来收发消息,同时仓储服务宕机,不会导致消息丢失。
在这里插入图片描述

好,我们来看下目前为止的架构图。

那如果此时出现一个问题,就是说订单服务投递了订单消息到RabbitMQ里去,RabbitMQ暂时放在了自己的内存中,还没来得及投递给下游的仓储服务呢,此时RabbitMQ突然宕机了,会怎么样?

答案其实很简单,默认情况下,按照我们目前的代码和配置,这个数据就会丢失了。

所以在这里而言,就牵扯到了RabbitMQ的一个较为重要的概念:消息的持久化,用英文来说就是durable机制。

然后这里又有一个引申的概念,如果按照我们之前的代码和配置,默认情况下,RabbitMQ一旦宕机就再次重启,就会丢失我们之前创建的queue。所以首先得先让queue是持久化的。

使用下面的代码,就可以把我们的“warehouse_schedule_delivery”这个queue,也就是仓储调度发货的queue,设置为持久化的。

这样,即使Rabbi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值