關於rabbitmq持久化及訊息確認總結

2021-09-02 23:04:20 字數 1193 閱讀 3632

重啟rabbitmq服務通過兩個命令來實現: 

rabbitmqctl stop:停止rabbitmq 

rabbitmq-server restart: 重啟rabbitmq

檢視rabbitmq佇列資訊:rabbitmqctl list_queues

持久化佇列資訊:durable,persistent=true

sender:

channel.queuedeclare(queue: "task_queue",

durable: true,

exclusive: false,

autodelete: false,

arguments: null);

//4. 申明佇列(指定durable:true,告知rabbitmq對訊息進行持久化)

var message = getmessage(args);

var body = encoding.utf8.getbytes(message);

var properties = channel.createbasicproperties();

properties.persistent = true;

channel.basicpublish(exchange: "",

routingkey: "task_queue",

basicproperties: properties,

body: body);

持久化訊息的確認設定:

receiver:

autoack: false;設定為false,則需要手動回執確認: channel.basicack(deliverytag: ea.deliverytag, multiple: false);

autoack:true;設定為true,則rabbitmq自動執行回執確認,而不管consumer是否正確處理訊息

consumer.received += (model, ea) =>

", message);

channel.basicack(deliverytag: ea.deliverytag, multiple: false);

};channel.basicconsume(queue: "task_queue",

autoack: false,

consumer: consumer);

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...