溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

發(fā)布時間:2021-12-17 14:26:14 來源:億速云 閱讀:271 作者:小新 欄目:云計算

這篇文章主要介紹了如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一 機器部署

1、機器組成

7臺機器,均為16G內存

每臺服務器均有4個CPU,2核

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

2、運行環(huán)境配置

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

3、刷盤方式

每臺機器master機器均采用異步刷盤方式

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

二 性能評測

1、評測目的

   測試pull消費模式,單次批量拉消息最大條數(shù)。

2、評測指標

    批量拉取消息最大條數(shù)msgExtSize

    自定義配置 最大拉取條數(shù) maxNums

3、評測邏輯

  (1)先發(fā)送10000條消息,等待消息全部發(fā)送完畢,然后啟動consumer端消費消息。

    (2)配置maxNums的值分別為 1、3、5、8、16、20、24、27、31、32、33、34、35、36、54、80、100,然后對比每次拉取消息的msgExtSize條數(shù)。

   (3)記錄每次批量拉取消息的最大條數(shù),即可測試出批量拉消息最大條數(shù)。

    (4)步驟3找出批量拉消息最大條數(shù)后,在這個數(shù)值前后再設置連續(xù)數(shù)字,進一步驗證此數(shù)值。

4、評測過程

    (1)第一組:開啟20個線程,每個線程發(fā)送3000條數(shù)據(jù),總共向topic名稱為 “pullTest”發(fā)送60W條消息(消息量越多越好,consumer端消費速率很快,故發(fā)送消息的數(shù)據(jù)量越多越好,這樣以便于看出效果)。

    消息發(fā)送如下:

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=1的消費記錄,輸出的msgExtSize=1

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=3的消費記錄,輸出的msgExtSize=2

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=5的消費記錄,輸出的msgExtSize=4

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=8的消費記錄,輸出的msgExtSize=7

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

設置maxNums=16的消費記錄,輸出的msgExtSize=15

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=20的消費記錄,輸出的msgExtSize=19

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=24的消費記錄,輸出的msgExtSize=23

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=27的消費記錄,輸出的msgExtSize=26

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=32的消費記錄,輸出的msgExtSize=31

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=36的消費記錄,輸出的msgExtSize=32

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=54的消費記錄,輸出的msgExtSize=32

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=80的消費記錄,輸出的msgExtSize=32

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=100的消費記錄,輸出的msgExtSize=32

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       分析以上各條件的測試數(shù)據(jù)可知: 批量拉消息最大條數(shù)的條數(shù)是32。

       (2)第二組:在拉取消息的最大條數(shù) 前后的數(shù)字,細粒度的再次測試。

       設置maxNums=33的消費記錄,輸出的msgExtSize=32

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=34的消費記錄,輸出的msgExtSize=32

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=35的消費記錄,輸出的msgExtSize=32

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

       設置maxNums=31的消費記錄,輸出的msgExtSize=30

如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試

    進一步分析測試數(shù)據(jù),批量拉消息最大條數(shù)的條數(shù)是32。

    分析結果如下:

自定義最大拉取數(shù)
(期望)
批量拉消息最大條數(shù)
(實際)
11
32
54
87
1615
2019
2423
2726
3130
3231
3332
3432
3532
3632
5432
8032
10032

二 評測結果

   1、如下測試結論,基于消息存儲于內存的場景(而非消息存儲于磁盤的場景)。

   在Pull消費場景下,令 maxA = 自定義最大拉取條數(shù), maxB=實際批量拉消息最大條數(shù), 則得出如下結論:

    (1)若maxA = 1, 則maxB = 1

    (2)若maxA <= 32, 則 maxB = maxA - 1

    (3)若maxA > 32, 則maxB = 32 

 2、查閱RocketMQ配置文件,如果消息存儲于磁盤,則實際批量拉消息最大條數(shù)是為8(并非期望的數(shù)值32),奈何此種測試場景不太好重現(xiàn),暫未測試,留待后續(xù)進一步重現(xiàn)測試。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何實現(xiàn)Rocketmq拉取pull消息分頁數(shù)目測試”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI