rabbitmq系列rabbitmq(一)——簡介rabbitmq(二)——模式型別rabbitmq(三)——簡單模式對於交換機(exchange)與佇列(queue)的持久化只需要將durable屬性設定為true即可,當重啟rabbitmq服務後,交換機和佇列都會恢復,但是當只有佇列的durable屬性設定為true時,重啟後會造成訊息丟失。rabbitmq(四)——工作佇列模式
rabbitmq(五)——發布訂閱模式
rabbitmq(六)——路由模式
rabbitmq(七)——主題模式
rabbitmq(八)——訊息確認
rabbitmq(九)——訊息持久化
rabbitmq(十)——訊息優先順序
首先是設定生產者的交換機和佇列的持久化屬性durable為true,再設定ibasicproperties.persistent為true,發布時帶上basicproperties
//view code1.建立連線工廠
connectionfactory factory = new
connectionfactory()
;//2.建立連線
using (var connection =factory.createconnection())
//3.建立管道
using (var channel =connection.createmodel())
";var body =encoding.utf8.getbytes(msg);
channel.basicpublish(
"exchange
", "", null
, body);
console.writeline($
"發布成功:");
thread.sleep(
1000
); }
console.readkey();
}
可以看到10條訊息寫入成功
現在重啟下rabbitmq服務
可以看到上圖中的訊息在重啟後沒有消費就丟失了,下面進行訊息的持久化,交換機和佇列的durable都設定為true。
修改建立交換機**,將預設的false設定為true,basicproperties.persistent設定為true
//view code1.建立連線工廠
connectionfactory factory = new
connectionfactory()
;//2.建立連線
using (var connection =factory.createconnection())
//3.建立管道
using (var channel =connection.createmodel())
";var body =encoding.utf8.getbytes(msg);
channel.basicpublish(
"exchange
", ""
, basicproperties, body);
console.writeline($
"發布成功:");
thread.sleep(
1000
); }
console.readkey();
}
發布訊息和重啟之後都是是10條訊息。
這樣就完成了訊息持久的設定了
rabbitmq 訊息持久化
專案案例 channel.exchangedeclare my exchange,builtinexchangetype.topic,true durable 引數設定為 truechannel.queuedeclare my queue,true,false,false maps.newhashm...
RabbitMQ訊息持久化
三 訊息持久化 四 總結 回到頂部 一 前言 如果我們希望即使在rabbitmq服務重啟的情況下,也不會丟失訊息,我們可以將queue與message都設定為可持久化的 durable 這樣可以保證絕大部分情況下我們的rabbitmq訊息不會丟失。當然還是會有一些小概率事件會導致訊息丟失。回到頂部 ...
RabbitMQ訊息持久化
如果我們希望即使在rabbitmq服務重啟的情況下,也不會丟失訊息,我們可以將queue與message都設定為可持久化的 durable 這樣可以保證絕大部分情況下我們的rabbitmq訊息不會丟失。當然還是會有一些小概率事件會導致訊息丟失。在windows環境下,在rabbitmq的安裝目錄 s...