V-xin:ruyuanhadeng获得600+页原创精品文章汇总PDF
上一篇讲消息中间件的文章:《如果公司线上系统突然宕机了,怎么才能确保MQ消息不丢失?》,初步给大家介绍了一个在生产环境中可能遇到的问题,就是你的消费者服务可能会宕机,一旦宕机,你就需要考虑是否会导致没处理完的消息丢失。
这篇文章,给不太熟悉MQ技术的同学,介绍一个生产环境中可能会遇到的问题。
目前为止,你的RabbitMQ部署在线上服务器了,对吧?然后订单服务和仓储服务都可以基于RabbitMQ来收发消息,同时仓储服务宕机,不会导致消息丢失。
好,我们来看下目前为止的架构图。
那如果此时出现一个问题,就是说订单服务投递了订单消息到RabbitMQ里去,RabbitMQ暂时放在了自己的内存中,还没来得及投递给下游的仓储服务呢,此时RabbitMQ突然宕机了,会怎么样?
答案其实很简单,默认情况下,按照我们目前的代码和配置,这个数据就会丢失了。
所以在这里而言,就牵扯到了RabbitMQ的一个较为重要的概念:消息的持久化,用英文来说就是durable机制。
然后这里又有一个引申的概念&#x