4、rabbitmq如何保障消息不丢失

2022-04-07  本文已影响0人  松松木tell

消息在传递过程中,任何一个环节都有可能发生丢失的状态。所以我要从生产者、MQ、消费者三个方面去梳理并提供不丢失的方案。

1、生产者

生产者在发送消息的过程着由于网络问题导致消息丢失;
消息还在rabbitmq的内存中,还未持久化的磁盘的时候宕机了,这时消息会丢失。
这时我们2种方案

2、MQ集群

对于MQ来说,我们需要做到持久化到磁盘才能保障数据不丢失。但是如果MQ磁盘也挂了呢?所以我们要采用MQ集群,并开启持久化。

3、消费者

在消费者这边为了避免丢失,我们要关闭autoACK方式,采用手动ack,只有消费者消费完成后才去提交ack。

4、高并发情况

如果高峰期突发10倍流量,恰好此时MQ集群也挂了,消息该如何处理才能不丢。
我们可以在生产者这边进行持久化,可以采用内存双缓冲+批量持久化到磁盘。

上一篇 下一篇

猜你喜欢

热点阅读