RabbitMQ 從 3.6.0 版本開始引入了惰性隊列的概念。惰性隊列會**盡可能的將消息存入磁盤中,而在消費者消費到相應的消息時才會被加載到內存中,它的一個重要的設計目標是能夠支持更長的隊列,即支持更多的消息存儲**。
<br/>
當消費者由于各種各樣的原因(比如消費者下線、宕機亦或者是由于維護而關閉等)而致使長時間內不能消費消息造成堆積時,惰性隊列就很有必要了。
<br/>
默認情況下,當生產者將消息發送到 RabbitMQ 的時候,隊列中的消息會盡可能的存儲在內存之中,這樣可以更加快速的將消息發送給消費者。
<br/>
即使是持久化的消息,在被寫入磁盤的同時也會在內存中駐留一份備份。當 RabbitMQ 需要釋放內存的時候,會將內存中的消息存儲到磁盤中,這個操作會耗費較長的時間,也會阻塞隊列的操作,進而無法接收新的消息。雖然 RabbitMQ 的開發者們一直在升級相關的算法,但是效果始終不太理想,尤其是在消息量特別大的時候。
- 消息隊列
- 什么是MQ
- MQ的作用
- MQ的分類
- MQ的選擇
- RabbitMQ
- RabbitMQ是什么
- 四大核心概念
- 工作原理
- 環境搭建
- windows系統下的搭建
- centos7系統下的搭建
- 常用命令
- 服務相關命令
- 管理用戶命令
- 管理隊列命令
- 第一個RabbitMQ程序
- 工作隊列
- 輪詢分發消息
- 消息應答
- 持久化
- 發布確認
- 發布確認原理
- 發布確認策略
- 交換機概念
- 交換機類型
- 無名交換機
- Fanout交換機
- Direct交換機
- Topic交換機
- 死信隊列
- 死信概念
- 死信來源
- 死信實戰
- 延遲隊列
- 什么是延遲隊列
- TTL設置方式
- 隊列TTL延遲隊列
- 消息TTL延遲隊列
- 插件打造延遲隊列
- 延遲隊列總結
- 發布確認高級
- 代碼實現
- 回退消息
- 備份交換機
- 冪等性
- 冪等性概念
- 消息重復消費
- 消費端冪等性保障
- 優先級隊列
- 使用場景
- 設置優先級
- 惰性隊列
- 什么是惰性隊列
- 隊列的兩種模式
- 聲明惰性隊列
- RabbitMQ集群
- 為什么要搭建集群
- 集群搭建步驟
- 集群工作方式
- 脫離集群
- 鏡像隊列
- 高可用負載均衡