rabbitmq 訊息持久化

2021-09-26 22:26:03 字數 919 閱讀 6577

專案案例:

channel.exchangedeclare(my_exchange, builtinexchangetype.topic, true);
durable 引數設定為 true
channel.queuedeclare(my_queue, true, false, false , maps.newhashmap());
同樣 durable 引數設定為 true

channel.basicpublish(exchange.my_exchange, binding.routing_key, messageproperties.persistent_text_plain, msg.getbytes("utf-8"));
關鍵在於 messageproperties.persistent_text_plain 引數:

/** content-type "text/plain", deliverymode 2 (persistent), priority zero */

public static final basicproperties persistent_text_plain =

new basicproperties("text/plain",

null,

null,

2,0, null, null, null,

null, null, null, null,

null, null);

deliverymode = 2 表示持久化訊息,deliverymode = 1 表示非持久化訊息

注意:exchange  持久化對訊息持久化沒有影響,但是一定要將 queue 也持久化,否則達不到訊息持久化的目的

RabbitMQ訊息持久化

三 訊息持久化 四 總結 回到頂部 一 前言 如果我們希望即使在rabbitmq服務重啟的情況下,也不會丟失訊息,我們可以將queue與message都設定為可持久化的 durable 這樣可以保證絕大部分情況下我們的rabbitmq訊息不會丟失。當然還是會有一些小概率事件會導致訊息丟失。回到頂部 ...

RabbitMQ訊息持久化

如果我們希望即使在rabbitmq服務重啟的情況下,也不會丟失訊息,我們可以將queue與message都設定為可持久化的 durable 這樣可以保證絕大部分情況下我們的rabbitmq訊息不會丟失。當然還是會有一些小概率事件會導致訊息丟失。在windows環境下,在rabbitmq的安裝目錄 s...

RabbitMQ 九 訊息持久化

rabbitmq系列rabbitmq 一 簡介rabbitmq 二 模式型別rabbitmq 三 簡單模式 rabbitmq 四 工作佇列模式 rabbitmq 五 發布訂閱模式 rabbitmq 六 路由模式 rabbitmq 七 主題模式 rabbitmq 八 訊息確認 rabbitmq 九 訊...