RocketMQ 訊息儲存

2022-02-09 03:12:23 字數 379 閱讀 7559

訊息儲存

主要的儲存檔案:

1、訊息檔案(commitlog)

2、訊息消費佇列檔案(consumequeue)

3、hash索引檔案(indexfile)

4、檢測點檔案(checkpoint)

5、關閉異常檔案(abort)

檔案刷盤機制

同步刷寫:訊息追加到記憶體後,立即將記憶體訊息刷寫到磁碟,再對客戶端進行應答。

非同步刷寫:訊息追加到記憶體後,先應答客戶端,再使用執行緒按照設定的頻率將記憶體刷寫到磁碟上。(預設的刷寫機制)

過期檔案刪除機制

果:清除檔案的方法是:如果非當前檔案在一定時間間隔內沒有再次被更新,則認為是過期檔案,可以被刪除。

待補充:訊息的消費具體工作方式。

RocketMQ訊息儲存

分布式佇列因為有高可靠性的要求,所以資料要進行持久化儲存。訊息生成者傳送訊息 mq收到訊息,將訊息進行持久化,在儲存中新增一條記錄 返回ack給生產者 mq push訊息給對應的消費者,然後等待消費者返回ack 如果訊息消費者在指定時間內成功返回ack,那麼mq認為訊息消費成功,在儲存中刪除訊息,即...

RocketMQ 訊息儲存結構

引用 rmq採用順序寫,隨機讀的設計理念 commitlog順序寫,可以大大提高寫人效率。雖然是隨機讀,但是利用作業系統的pagecache機制,可以批量地從磁 盤讀取,作為cache存到記憶體中,加速後續的讀取速度。rocketmq訊息的儲存是由consumequeue和commitlog配合完成...

訊息佇列(三)RocketMQ如何儲存訊息

rocket的訊息是有consume queue和commit log組成。consume queue consume queue是訊息的邏輯佇列,相當於字典目錄,用來指定訊息在物理檔案 commit log 上的位置,我們可以在配置中指定consumequeue和commitlog儲存的目錄。每乙...