分布式消息服务RabbitMQ

消息持久化

2024-06-27 02:27:53

使用场景

在生产过程中,难免会发生服务器宕机的事情,RabbitMQ也不例外,可能由于某种特殊情况下的异常而导致RabbitMQ宕机从而重启,那么这个时候对于消息队列里的数据,包括交换机、队列以及队列中存在消息恢复就显得尤为重要了。RabbitMQ本身带有持久化机制,包括交换机、队列以及消息的持久化。持久化的主要机制就是将信息写入磁盘,当RabbtiMQ服务宕机重启后,从磁盘中读取存入的持久化信息,恢复数据。

设置交换器持久化

(1)登录管理控制台。

(2)进入RabbitMQ管理控制台。

(3)在实例列表页在操作列,目标实例行点击“管理”。

(4)点击“交换器管理”后,点击“新建”按钮。

(5)点击“新建”后出现以下窗口,是否持久化选择是。

设置队列持久化

(1)登录管理控制台。

(2)进入RabbitMQ管理控制台。

(3)在实例列表页在操作列,目标实例行点击“管理”。

(4)点击“队列管理”后,点击“新建”按钮。

(5)点击“新建”后出现以下窗口,是否持久化选择是。

设置消息持久化

Queue设置为持久化后,通过设置“MessageProperties”为“PERSISTENT_TEXT_PLAIN”来向Queue发送持久消息。

java客户端示例为:

import com.rabbitmq.client.MessageProperties;
channel.basicPublish("", "my_queue",MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());


90emt_e3JHwy