專案案例:
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 九 訊...