更新时间:2023年09月26日18时19分 来源:传智教育 浏览次数:
为了提升性能,默认情况下MQ的数据都是在内存存储的临时数据,重启后就会消失。为了保证数据的可靠性,必须配置数据持久化,包括:
交换机持久化
队列持久化
消息持久化
我们以控制台界面为例来说明。
在控制台的Exchanges页面,添加交换机时可以配置交换机的Durability参数:
在控制台的Queues页面,添加队列时,同样可以配置队列的Durability参数:
在控制台发送消息的时候,可以添加很多参数,而消息的持久化是要配置一个properties:
warning 说明:在开启持久化机制以后,如果同时还开启了生产者确认,那么MQ会在消息持久化以后才发送ACK回执,进一步确保消息的可靠性。 不过出于性能考虑,为了减少IO次数,发送到MQ的消息并不是逐条持久化到数据库的,而是每隔一段时间批量持久化。一般间隔在100毫秒左右,这就会导致ACK有一定的延迟,因此建议生产者确认全部采用异步方式。