教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

如何确保MQ消息的可靠性?

更新时间:2023年09月26日18时19分 来源:传智教育 浏览次数:

为了提升性能,默认情况下MQ的数据都是在内存存储的临时数据,重启后就会消失。为了保证数据的可靠性,必须配置数据持久化,包括:

交换机持久化

队列持久化

消息持久化

我们以控制台界面为例来说明。

1.交换机持久化

在控制台的Exchanges页面,添加交换机时可以配置交换机的Durability参数:

交换机持久化
设置为Durable就是持久化模式,Transient就是临时模式。

2.队列持久化

在控制台的Queues页面,添加队列时,同样可以配置队列的Durability参数:

对列持久化
除了持久化以外,你可以看到队列还有很多其它参数。

3.消息持久化

在控制台发送消息的时候,可以添加很多参数,而消息的持久化是要配置一个properties:

消息持久化

warning 说明:在开启持久化机制以后,如果同时还开启了生产者确认,那么MQ会在消息持久化以后才发送ACK回执,进一步确保消息的可靠性。 不过出于性能考虑,为了减少IO次数,发送到MQ的消息并不是逐条持久化到数据库的,而是每隔一段时间批量持久化。一般间隔在100毫秒左右,这就会导致ACK有一定的延迟,因此建议生产者确认全部采用异步方式。

0 分享到:
和我们在线交谈!