RocketMq多個consumerQueue長什么樣子


由於對RocketMq的MessageQueue一直不理解,其實就是可以理解成consumeQueue

有原文為證

CommitLog:是消息主體以及元數據的存儲主體,對CommitLog建立一個ConsumeQueue,
每個ConsumeQueue對應一個(概念模型中的)MessageQueue,所以只要有Commit Log在,Consume Queue即使數據丟失,仍然可以恢復出來。

於是我做了個實驗

分別讀取了四個consumequeue的文件,默認是四個讀取隊列,所以在consumeQueue目錄下有四個文件夾,分別是0,1,2,3

這四個文件夾下都一個文件,文件名就叫 00000000000000000000。我就往topic里寫了10條數據

說下三個字段的含義 序號: taghash  size offset

0號
[ERROR]1: 2598919 201 603
2: 2598919 201 603
[ERROR]3: 2598919 201 1407
4: 2598919 201 1407

1號
[ERROR]1: 2598919 201 0
2: 2598919 201 0
[ERROR]3: 2598919 201 804
4: 2598919 201 804
[ERROR]5: 2598919 201 1608
6: 2598919 201 1608

2號
[ERROR]1: 2598919 201 201
2: 2598919 201 201
[ERROR]3: 2598919 201 1005
4: 2598919 201 1005
[ERROR]5: 2598919 201 1809
6: 2598919 201 1809

3號
[ERROR]1: 2598919 201 402
2: 2598919 201 402
[ERROR]3: 2598919 201 1206
4: 2598919 201 1206

從這里能看得出來,每一條消息都是201字節大小。可以看得出來第一條消息寫在了1號文件,也就是queueId = 1。

2598919 201 0

然后第二個消息在2號文件

  2598919 201 201

然后第三條消息在3號文件

  2598919 201 402

然后就是以此類推


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM