RabbitMQ的持久化與非持久化

 

登錄RabbitMQ的圖形化管理界面,選擇“Queue”隊列查看模塊,可以看到之前在Spring-Rabbit工程中創建的MyQueue的隊列:

我們可以觀察到在“myQueue”列中,後面有一個Features的屬性,爲“D”,和下面的隊列都有不同,這是一個什麼參數呢?其實該參數“D”就是“durable”的意思,即“持久的”,也就是說名爲“myQueue”的隊列,是一個持久化隊列,而下面Features屬性爲空的隊列就是非持久化隊列。

我們現在將Rabbit服務重啓:

然後刷新RabbitMQ的Queue管理界面,可以看到現在只剩下狀態爲持久化的“myQueue”隊列了。

 

  • 持久化隊列和非持久化隊列的區別是,持久化隊列會被保存在磁盤中,固定並持久的存儲,當Rabbit服務重啓後,該隊列會保持原來的狀態在RabbitMQ中被管理,而非持久化隊列不會被保存在磁盤中,Rabbit服務重啓後隊列就會消失。
  • 非持久化比持久化的優勢就是,由於非持久化不需要保存在磁盤中,所以使用速度就比持久化隊列快。即是非持久化的性能要高於持久化。
  • 而持久化的優點就是會一直存在,不會隨服務的重啓或服務器的宕機而消失。

將參數durable設置爲“false”,則該隊列爲非持久化隊列,設置成“true”時,該隊列就爲持久化隊列.

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