RabbitMQ 持久化机制
RabbitMQ 的持久化分为队列持久化
、消息持久化
、交换器持久化
。
不管是持久化的消息还是非持久化的消息都可以被写入到磁盘,区别在与重启后数据是否在存储。
持久化消息
非持久化消息
RabbitMQ 队列持久化
RabbitMQ 消息持久化
消息持久化通过消息的属性deliveryMode来设置是否持久化,在发送消息时通过basicPublish的参数传入。
//通过传入MessageProperties.PERSISTENT_TEXT_PLAIN 就可以实现消息持久化
channel.basicPublish("","queue1",MessageProperties.PERSISTENT_TEXT_PLAIN,"persistent_test_message".getBytes());
RabbitMQ 交换器持久化
同队列一样,交换器也需要在定义时设置持久化标识,否则在Broker重启后将丢失
//durable 为true则开启持久化
Exchange.DeclareOk exchangeDeclare(String exchange,String type,boolean durable) throws IOException;
RabbitMQ 内存控制
RabbitMQ 内存告警
RabbitMQ 内存控制
RabbitMQ 内存换页