應用場景:
1.需要支持更多的消息存儲
2.消費者由於各種各樣的原因(如消費者下線、宕機或者由於維護而關閉等等)導致長時間不能消費消息而造成堆積時
重要概念:
1.惰性隊列會儘可能地將消息存入磁盤中,消費者消費到對應的消息時纔會被加載到內存中
2.惰性隊列會將接受到的消息直接存入文件系統中,而不管是持久化的或者是非持久化的,這樣可以減少了內存的消耗,但是會增加I/O的使用,如果消息是持久的,那麼這樣的I/O操作不可避免,惰性隊列和持久化的消息可謂是“最佳拍檔”.
3.如果惰性隊列中存儲的是非持久化的消息,內存的使用率會一直很穩定,但是重啓之後消息一樣會丟失.
4.惰性隊列和普通隊列相比
隊列類型 |
發送消息量 |
每一個消息大小 |
消耗內存 |
惰性隊列 |
一千萬 |
1KB |
1.5MB |
普通隊列 |
一千萬 |
1KB |
1.2GB |