有道无术,术尚可求,有术无道,止于术。
文章目录
-
- 前言
- 交换机
- 队列
- 消息
前言
在RabbitMQ
服务端,意外退出或由于某种原因崩溃时,会忽视队列和消息。确保消息不会丢失需要将交换机、队列、消息都标记为持久化。
交换机
交换机的持久化其实就是相当于将交换机的属性在服务器内部保存,当MQ的服务器发生意外或关闭之后,重启RabbitMQ
时不需要重新手动或执行代码去建立交换机,交换机会自动建立,相当于一直存在。
创建时,使用durable(true)
设置持久化:
@Bean("bootExchange")
public Exchange bootExchange() {
return ExchangeBuilder.directExchange("bootExchange").durable(true).build();
}
队列
队列持久化类似于交换机持久化,创建时,使用durable(" ")
设置持久化:
@Bean("bootQueue")
public Queue bootQueue() {
return QueueBuilder.durable("bootQueue").build();
}
消息
众所周知,RabbitMQ的消息是依附于队列存在的,所以想要消息持久化,那么前提是队列也要持久化。
RabbitTemplate
发送消息默认就是持久化的:
RabbitTemplate.convertAndSend()
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: