小編給大家分享一下如何實現(xiàn)Rocketmq集群消費測試,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供北辰網(wǎng)站建設(shè)、北辰做網(wǎng)站、北辰網(wǎng)站設(shè)計、北辰網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、北辰企業(yè)網(wǎng)站模板建站服務,十載北辰做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務。
一 機器部署
1、機器組成
7臺機器,均為16G內(nèi)存
每臺服務器均有4個CPU,2核
2、運行環(huán)境配置
3、刷盤方式
每臺機器master機器均采用異步刷盤方式
二 性能評測
1、評測目的
測試consumer端的集群模式消費。
2、評測指標
(1)topic關(guān)聯(lián)的readQueueNums讀隊列數(shù)值
(2)屬于同一個consumerGroup的consumer個數(shù)
(3)所有consumer消費消息的總條數(shù)
(4)每個consumer消費消息,讀取的隊列Id
(5)部署集群中的master機器臺數(shù)
3、評測邏輯
如果有 5 個隊列,2 個 consumer,那么第一個 Consumer 消費 3 個隊列,第二 consumer 消費 2 個隊列。
如果Consumer 超過隊列數(shù)量,那么多余的Consumer 將不能消費消息。
隊列數(shù)量、Consumer數(shù)量、Replance結(jié)果如下表
隊列數(shù)量 | Consumer數(shù)量 | Reblance結(jié)果 |
5 | 2 | C1:3 C2:2 |
6 | 3 | C1:3 C2:3 |
10 | 20 | C1-C10:1 C11-C20:0 |
20 | 6 | C1:4 C2:4 C3-C4:3 |
4、評測過程
(1)發(fā)送消息前,查看服務端的topic關(guān)聯(lián)的隊列個數(shù)。
(2)producer端向topic名稱為“clusterTopicTest”隊列發(fā)送消息,定為20條,發(fā)送消息后并記錄每條消息的msgId、queueId、offset等基本信息。
(3)配置consumer端,日志記錄每個consumer端的instanceName、消息的offset、所消費隊列queueId、消息的body、消息msgId,以及每個consumer消費消息的總條數(shù)。
(4)每次消費完之后,統(tǒng)計所有consumer端消費消息的總數(shù),判斷消息是否有丟失。
(5)每次消費完之后,分析每個consumer消費隊列的queueId,判斷隊列是否達到了負載均衡。
(6)記topic的隊列數(shù)為A,記consumer個數(shù)為B,做如下調(diào)整:
第一組:保持A不變,增加B,使得A > B,然后重復步驟1-5。
第二組:保持A不變,增加B,使得A = B,然后重復步驟1-5。
第三組:保持A不變,增加B,使得A = 2 * B,然后重復步驟1-5。
第三組:增加A,保持B不變,使得2 * A = B,然后重復步驟1-5。
第五組:減少A,保持B不變,使得2 * A < B,然后重復步驟1-5。
(7)注意:需要先啟動所有consumer端,在啟動producer端發(fā)送消息,這樣才能在每個consumer端同時看到消息的消費情況,因為消息被消費的速率是很快的。
(8)注意:master機器個數(shù),每臺master機器上指定topic的隊列數(shù),兩數(shù)值相乘,才是最終的rocketmq做負載均衡的隊列個數(shù)。 (步驟6的master機器個數(shù)為2)
第一組,總發(fā)送條數(shù)20條
隊列數(shù)量 | Consumer數(shù)量 | Reblance結(jié)果 (期望) | Reblance結(jié)果 (實際) | Master機器 | 消費條數(shù) | |
Master1 | Master2 | |||||
8 | 5 | C1:4 | C1:4 | 4 | 0 | 8 |
C2:3 | C2:3 | 1 | 2 | 3 | ||
C3:3 | C3:3 | 0 | 3 | 3 | ||
C4:3 | C4:3 | 3 | 0 | 3 | ||
C5:3 | C5:3 | 0 | 3 | 3 |
3個consumer消費消息總條數(shù):8+3+3+3+3 = 20條
2臺master機器,每個topic有8個隊列, 期望的隊列個數(shù) 2*8=16個,實際的隊列個數(shù) 4+3+3+3+3 = 16個,可以看出期望、實際的queue分布是相同的結(jié)果。
producer的發(fā)送記錄:
consumer1的消費記錄:
consumer2的消費記錄:
consumer3的消費記錄:
consumer4的消費記錄:
consumer5的消費記錄:
第二組,總發(fā)送條數(shù)20條
隊列數(shù)量 | Consumer數(shù)量 | Reblance結(jié)果 (期望) | Reblance結(jié)果 (實際) | Master機器 | 消費條數(shù) | |
Master1 | Master2 | |||||
8 | 8 | C1:2 | C1:2 | 2 | 0 | 4 |
C2:2 | C2:2 | 0 | 2 | 2 | ||
C3:2 | C3:2 | 0 | 2 | 2 | ||
C4:2 | C4:2 | 0 | 2 | 2 | ||
C5:2 | C5:2 | 0 | 2 | 2 | ||
C6:2 | C6:2 | 2 | 0 | 4 | ||
C7:2 | C7:2 | 2 | 0 | 2 | ||
C8:2 | C8:2 | 2 | 0 | 2 |
8個consumer消費消息總條數(shù):8+3+3+3+3 = 20條
2臺master機器,每個topic有8個隊列, 期望的隊列個數(shù) 2*8=16個,實際的隊列個數(shù) 2+2+2+2+2+2+2+2 = 16個,可以看出期望、實際的queue分布是相同的結(jié)果。
8個consumer消費消息總條數(shù):4+2+2+2+2+2+4+2+2 = 20條
producer的發(fā)送記錄:
consumer1的消費記錄:
consumer2的消費記錄:
consumer3的消費記錄:
consumer4的消費記錄:
consumer5的消費記錄:
consumer6的消費記錄:
consumer7的消費記錄:
consumer8的消費記錄:
第三組,總發(fā)送條數(shù)20條
隊列數(shù)量 | Consumer數(shù)量 | Reblance結(jié)果 (期望) | Reblance結(jié)果 (實際) | Master機器 | 消費條數(shù) | |
Master1 | Master2 | |||||
8 | 4 | C1:4 | C1:4 | 4 | 0 | 8 |
C2:4 | C2:4 | 4 | 0 | 4 | ||
C3:4 | C3:4 | 0 | 4 | 4 | ||
C4:4 | C4:4 | 0 | 4 | 4 |
8個consumer消費消息總條數(shù):8+3+3+3+3 = 20條
2臺master機器,每個topic有8個隊列, 期望的隊列個數(shù) 2*8=16個,實際的隊列個數(shù) 4+4+4+4 = 16個,可以看出期望、實際的queue分布是相同的結(jié)果。
8個consumer消費消息總條數(shù):8+4+4+4 = 20條
producer的發(fā)送記錄:
consumer1的消費記錄:
consumer2的消費記錄:
consumer3的消費記錄:
consumer4的消費記錄:
第四組,總發(fā)送條數(shù)20條
隊列數(shù)量 | Consumer數(shù)量 | Reblance結(jié)果 (期望) | Reblance結(jié)果 (實際) | Master機器 | 消費條數(shù) | |
Master1 | Master2 | |||||
4 | 8 | C1:1 | C1:1 | 1 | 0 | 3 |
C2:1 | C2:1 | 1 | 0 | 3 | ||
C3:1 | C3:1 | 0 | 1 | 2 | ||
C4:1 | C4:1 | 0 | 1 | 2 | ||
C5:1 | C5:1 | 0 | 1 | 2 | ||
C6:1 | C6:1 | 0 | 1 | 2 | ||
C7:1 | C7:1 | 1 | 0 | 3 | ||
C8:1 | C8:1 | 1 | 0 | 3 |
8個consumer消費消息總條數(shù):8+3+3+3+3 = 20條
2臺master機器,每個topic有8個隊列, 期望的隊列個數(shù) 2*4=8個,實際的隊列個數(shù) 1+1+1+1+1+1+1+1= 8個,可以看出期望、實際的queue分布是相同的結(jié)果。
8個consumer消費消息總條數(shù):3+3+2+2+2+2+3+3 = 20條
producer的發(fā)送記錄:
consumer1的消費記錄:
consumer2的消費記錄:
consumer3的消費記錄:
consumer4的消費記錄:
consumer5的消費記錄:
consumer6的消費記錄:
consumer7的消費記錄:
consumer8的消費記錄:
第五組,總發(fā)送條數(shù)20條
隊列數(shù)量 | Consumer數(shù)量 | Reblance結(jié)果 (期望) | Reblance結(jié)果 (實際) | Master機器 | 消費條數(shù) | |
Master1 | Master2 | |||||
3 | 7 | C1:1 | C1:1 | 0 | 1 | 3 |
C2:1 | C2:1 | 1 | 0 | 4 | ||
C3:1 | C3:1 | 0 | 1 | 3 | ||
C4:1 | C4:1 | 1 | 0 | 3 | ||
C5:1 | C5:1 | 1 | 0 | 4 | ||
C6:1 | C6:1 | 0 | 1 | 3 | ||
C7:0 | C7:0 | 0 | 0 | 0 |
8個consumer消費消息總條數(shù):8+3+3+3+3 = 20條
2臺master機器,每個topic有8個隊列, 期望的隊列個數(shù) 2*3=6個,實際的隊列個數(shù) 1+1+1+1+1+1+0 = 6個,可以看出期望、實際的queue分布是相同的結(jié)果。
8個consumer消費消息總條數(shù):3+4+3+3+4+3+0 = 20條
producer的發(fā)送記錄:
consumer1的消費記錄:
consumer2的消費記錄:
consumer3的消費記錄:
consumer4的消費記錄:
consumer5的消費記錄:
consumer6的消費記錄:
consumer7的消費記錄:
二 評測結(jié)果
1、rocketmq集群消費模式,訂閱消息的確達到了隊列負載均衡,與這種負載均衡消費相關(guān)的因素有: master機器個數(shù)、 特定topic的queue個數(shù),這兩個數(shù)值相乘,才是rocketmq最終計算隊列的總數(shù)。
2、rocketmq的集群消費能力,保證消息準確性,完整性,所有被消費的消息總數(shù)與producer端發(fā)送的消息總數(shù)是一致的,不存在消息丟棄的情況。
3、分析consumer消費日志,說明每條消息在相同consumerGroup組的不同consumer端中僅僅只會被消費一次。
4、在集群消費模式下,如果consumer的總數(shù),超過了隊列總數(shù),那么多余的consumer端將不能消費消息。
以上是“如何實現(xiàn)Rocketmq集群消費測試”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁標題:如何實現(xiàn)Rocketmq集群消費測試
標題路徑:http://jinyejixie.com/article38/psicpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站設(shè)計、手機網(wǎng)站建設(shè)、服務器托管、網(wǎng)站制作、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)