rabbitMq-持久化

爲什麼要持久化,目的就是避免消息丟失。那麼如何避免消息丟失?

1) 消費者的ACK機制。可以防止消費者丟失消息(手動ack)。
2) 但是,如果在消費者消費之前,MQ就宕機了,消息就沒了,所以要將消息持久化,前提是:隊列、Exchange都持久化

1. 交換機持久化

   channel.exchangeDeclare(EXCHANGE_NAME, "topic",true);

durable 持久化
在這裏插入圖片描述

2. 隊列持久化

channel.queueDeclare(QUEUE_NAME, true, false, false, null);

在這裏插入圖片描述

3. 消息持久化

channel.basicPublish(EXCHANGE_NAME, "item.insert",
                MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());

在這裏插入圖片描述
經過上述的持久化設置設置以後,即使在rabbitMq服務宕機了,從其以後仍然可以恢復之前的狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章