您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何實現Rocketmq拉取pull消息分頁數目測試,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一 機器部署
1、機器組成
7臺機器,均為16G內存
每臺服務器均有4個CPU,2核
2、運行環境配置
3、刷盤方式
每臺機器master機器均采用異步刷盤方式
二 性能評測
1、評測目的
測試pull消費模式,單次批量拉消息最大條數。
2、評測指標
批量拉取消息最大條數msgExtSize
自定義配置 最大拉取條數 maxNums
3、評測邏輯
(1)先發送10000條消息,等待消息全部發送完畢,然后啟動consumer端消費消息。
(2)配置maxNums的值分別為 1、3、5、8、16、20、24、27、31、32、33、34、35、36、54、80、100,然后對比每次拉取消息的msgExtSize條數。
(3)記錄每次批量拉取消息的最大條數,即可測試出批量拉消息最大條數。
(4)步驟3找出批量拉消息最大條數后,在這個數值前后再設置連續數字,進一步驗證此數值。
4、評測過程
(1)第一組:開啟20個線程,每個線程發送3000條數據,總共向topic名稱為 “pullTest”發送60W條消息(消息量越多越好,consumer端消費速率很快,故發送消息的數據量越多越好,這樣以便于看出效果)。
消息發送如下:
設置maxNums=1的消費記錄,輸出的msgExtSize=1
設置maxNums=3的消費記錄,輸出的msgExtSize=2
設置maxNums=5的消費記錄,輸出的msgExtSize=4
設置maxNums=8的消費記錄,輸出的msgExtSize=7
設置maxNums=16的消費記錄,輸出的msgExtSize=15
設置maxNums=20的消費記錄,輸出的msgExtSize=19
設置maxNums=24的消費記錄,輸出的msgExtSize=23
設置maxNums=27的消費記錄,輸出的msgExtSize=26
設置maxNums=32的消費記錄,輸出的msgExtSize=31
設置maxNums=36的消費記錄,輸出的msgExtSize=32
設置maxNums=54的消費記錄,輸出的msgExtSize=32
設置maxNums=80的消費記錄,輸出的msgExtSize=32
設置maxNums=100的消費記錄,輸出的msgExtSize=32
分析以上各條件的測試數據可知: 批量拉消息最大條數的條數是32。
(2)第二組:在拉取消息的最大條數 前后的數字,細粒度的再次測試。
設置maxNums=33的消費記錄,輸出的msgExtSize=32
設置maxNums=34的消費記錄,輸出的msgExtSize=32
設置maxNums=35的消費記錄,輸出的msgExtSize=32
設置maxNums=31的消費記錄,輸出的msgExtSize=30
進一步分析測試數據,批量拉消息最大條數的條數是32。
分析結果如下:
自定義最大拉取數 (期望) | 批量拉消息最大條數 (實際) |
1 | 1 |
3 | 2 |
5 | 4 |
8 | 7 |
16 | 15 |
20 | 19 |
24 | 23 |
27 | 26 |
31 | 30 |
32 | 31 |
33 | 32 |
34 | 32 |
35 | 32 |
36 | 32 |
54 | 32 |
80 | 32 |
100 | 32 |
二 評測結果
1、如下測試結論,基于消息存儲于內存的場景(而非消息存儲于磁盤的場景)。
在Pull消費場景下,令 maxA = 自定義最大拉取條數, maxB=實際批量拉消息最大條數, 則得出如下結論:
(1)若maxA = 1, 則maxB = 1
(2)若maxA <= 32, 則 maxB = maxA - 1
(3)若maxA > 32, 則maxB = 32
2、查閱RocketMQ配置文件,如果消息存儲于磁盤,則實際批量拉消息最大條數是為8(并非期望的數值32),奈何此種測試場景不太好重現,暫未測試,留待后續進一步重現測試。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何實現Rocketmq拉取pull消息分頁數目測試”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。