溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

發(fā)布時(shí)間:2021-12-17 14:23:36 來(lái)源:億速云 閱讀:227 作者:小新 欄目:云計(jì)算

小編給大家分享一下如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一 機(jī)器部署

1、機(jī)器組成

7臺(tái)機(jī)器,均為16G內(nèi)存

每臺(tái)服務(wù)器均有4個(gè)CPU,2核

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

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

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

3、刷盤(pán)方式

每臺(tái)機(jī)器master機(jī)器均采用異步刷盤(pán)方式

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

二 性能評(píng)測(cè)

1、評(píng)測(cè)目的

   測(cè)試consumer端的集群模式消費(fèi)。

2、評(píng)測(cè)指標(biāo)

    (1)topic關(guān)聯(lián)的readQueueNums讀隊(duì)列數(shù)值

    (2)屬于同一個(gè)consumerGroup的consumer個(gè)數(shù)

    (3)所有consumer消費(fèi)消息的總條數(shù)

    (4)每個(gè)consumer消費(fèi)消息,讀取的隊(duì)列Id

    (5)部署集群中的master機(jī)器臺(tái)數(shù)

3、評(píng)測(cè)邏輯

  如果有 5 個(gè)隊(duì)列,2 個(gè) consumer,那么第一個(gè) Consumer 消費(fèi) 3 個(gè)隊(duì)列,第二 consumer 消費(fèi) 2 個(gè)隊(duì)列。

    如果Consumer 超過(guò)隊(duì)列數(shù)量,那么多余的Consumer 將不能消費(fèi)消息。

    隊(duì)列數(shù)量、Consumer數(shù)量、Replance結(jié)果如下表

隊(duì)列數(shù)量Consumer數(shù)量Reblance結(jié)果
52C1:3
C2:2
63C1:3
C2:3
1020C1-C10:1
C11-C20:0
206C1:4
C2:4
C3-C4:3

4、評(píng)測(cè)過(guò)程

       (1)發(fā)送消息前,查看服務(wù)端的topic關(guān)聯(lián)的隊(duì)列個(gè)數(shù)。

       (2)producer端向topic名稱為“clusterTopicTest”隊(duì)列發(fā)送消息,定為20條,發(fā)送消息后并記錄每條消息的msgId、queueId、offset等基本信息。

    (3)配置consumer端,日志記錄每個(gè)consumer端的instanceName、消息的offset、所消費(fèi)隊(duì)列queueId、消息的body、消息msgId,以及每個(gè)consumer消費(fèi)消息的總條數(shù)。

    (4)每次消費(fèi)完之后,統(tǒng)計(jì)所有consumer端消費(fèi)消息的總數(shù),判斷消息是否有丟失。

    (5)每次消費(fèi)完之后,分析每個(gè)consumer消費(fèi)隊(duì)列的queueId,判斷隊(duì)列是否達(dá)到了負(fù)載均衡。

    (6)記topic的隊(duì)列數(shù)為A,記consumer個(gè)數(shù)為B,做如下調(diào)整:

    第一組:保持A不變,增加B,使得A > B,然后重復(fù)步驟1-5。

    第二組:保持A不變,增加B,使得A = B,然后重復(fù)步驟1-5。

    第三組:保持A不變,增加B,使得A = 2 * B,然后重復(fù)步驟1-5。

    第三組:增加A,保持B不變,使得2 * A = B,然后重復(fù)步驟1-5。

    第五組:減少A,保持B不變,使得2 * A < B,然后重復(fù)步驟1-5。

    (7)注意:需要先啟動(dòng)所有consumer端,在啟動(dòng)producer端發(fā)送消息,這樣才能在每個(gè)consumer端同時(shí)看到消息的消費(fèi)情況,因?yàn)橄⒈幌M(fèi)的速率是很快的。

    (8)注意:master機(jī)器個(gè)數(shù),每臺(tái)master機(jī)器上指定topic的隊(duì)列數(shù),兩數(shù)值相乘,才是最終的rocketmq做負(fù)載均衡的隊(duì)列個(gè)數(shù)。 (步驟6的master機(jī)器個(gè)數(shù)為2)

    第一組,總發(fā)送條數(shù)20條

隊(duì)列數(shù)量Consumer數(shù)量Reblance結(jié)果
(期望)
Reblance結(jié)果
(實(shí)際)
Master機(jī)器消費(fèi)條數(shù)
Master1Master2




85C1:4C1:4408
C2:3C2:3123

C3:3C3:3033

C4:3C4:3303

C5:3C5:3033

    3個(gè)consumer消費(fèi)消息總條數(shù):8+3+3+3+3 = 20條

    2臺(tái)master機(jī)器,每個(gè)topic有8個(gè)隊(duì)列, 期望的隊(duì)列個(gè)數(shù) 2*8=16個(gè),實(shí)際的隊(duì)列個(gè)數(shù) 4+3+3+3+3 = 16個(gè),可以看出期望、實(shí)際的queue分布是相同的結(jié)果。

    producer的發(fā)送記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer1的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer2的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer3的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer4的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer5的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    第二組,總發(fā)送條數(shù)20條

隊(duì)列數(shù)量Consumer數(shù)量Reblance結(jié)果
(期望)
Reblance結(jié)果
(實(shí)際)
Master機(jī)器消費(fèi)條數(shù)
Master1Master2




88C1:2C1:2204
C2:2C2:2022

C3:2C3:2022

C4:2C4:2022

C5:2C5:2022

C6:2C6:2204

C7:2C7:2202

C8:2C8:2202

    8個(gè)consumer消費(fèi)消息總條數(shù):8+3+3+3+3 = 20條

    2臺(tái)master機(jī)器,每個(gè)topic有8個(gè)隊(duì)列, 期望的隊(duì)列個(gè)數(shù) 2*8=16個(gè),實(shí)際的隊(duì)列個(gè)數(shù) 2+2+2+2+2+2+2+2 = 16個(gè),可以看出期望、實(shí)際的queue分布是相同的結(jié)果。

    8個(gè)consumer消費(fèi)消息總條數(shù):4+2+2+2+2+2+4+2+2 = 20條

    producer的發(fā)送記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer1的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer2的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer3的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer4的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer5的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer6的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer7的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer8的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

第三組,總發(fā)送條數(shù)20條

隊(duì)列數(shù)量Consumer數(shù)量Reblance結(jié)果
(期望)
Reblance結(jié)果
(實(shí)際)
Master機(jī)器消費(fèi)條數(shù)
Master1Master2




84C1:4C1:4408
C2:4C2:4404

C3:4C3:4044

C4:4C4:4044

    8個(gè)consumer消費(fèi)消息總條數(shù):8+3+3+3+3 = 20條

    2臺(tái)master機(jī)器,每個(gè)topic有8個(gè)隊(duì)列, 期望的隊(duì)列個(gè)數(shù) 2*8=16個(gè),實(shí)際的隊(duì)列個(gè)數(shù) 4+4+4+4 = 16個(gè),可以看出期望、實(shí)際的queue分布是相同的結(jié)果。

    8個(gè)consumer消費(fèi)消息總條數(shù):8+4+4+4 = 20條

    producer的發(fā)送記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer1的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer2的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer3的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer4的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

第四組,總發(fā)送條數(shù)20條

隊(duì)列數(shù)量Consumer數(shù)量Reblance結(jié)果
(期望)
Reblance結(jié)果
(實(shí)際)
Master機(jī)器消費(fèi)條數(shù)
Master1Master2




48C1:1C1:1103
C2:1C2:1103

C3:1C3:1012

C4:1C4:1012

C5:1C5:1012

C6:1C6:1012

C7:1C7:1103

C8:1C8:1103

    8個(gè)consumer消費(fèi)消息總條數(shù):8+3+3+3+3 = 20條

    2臺(tái)master機(jī)器,每個(gè)topic有8個(gè)隊(duì)列, 期望的隊(duì)列個(gè)數(shù) 2*4=8個(gè),實(shí)際的隊(duì)列個(gè)數(shù) 1+1+1+1+1+1+1+1= 8個(gè),可以看出期望、實(shí)際的queue分布是相同的結(jié)果。

    8個(gè)consumer消費(fèi)消息總條數(shù):3+3+2+2+2+2+3+3 = 20條

    producer的發(fā)送記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer1的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer2的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer3的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer4的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer5的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer6的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer7的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer8的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

第五組,總發(fā)送條數(shù)20條

隊(duì)列數(shù)量Consumer數(shù)量Reblance結(jié)果
(期望)
Reblance結(jié)果
(實(shí)際)
Master機(jī)器消費(fèi)條數(shù)
Master1Master2




37C1:1C1:1013
C2:1C2:1104

C3:1C3:1013

C4:1C4:1103

C5:1C5:1104

C6:1C6:1013

C7:0C7:0000

    8個(gè)consumer消費(fèi)消息總條數(shù):8+3+3+3+3 = 20條

    2臺(tái)master機(jī)器,每個(gè)topic有8個(gè)隊(duì)列, 期望的隊(duì)列個(gè)數(shù) 2*3=6個(gè),實(shí)際的隊(duì)列個(gè)數(shù) 1+1+1+1+1+1+0 = 6個(gè),可以看出期望、實(shí)際的queue分布是相同的結(jié)果。

    8個(gè)consumer消費(fèi)消息總條數(shù):3+4+3+3+4+3+0 = 20條

    producer的發(fā)送記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer1的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer2的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer3的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer4的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer5的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer6的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

    consumer7的消費(fèi)記錄:

如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試

二 評(píng)測(cè)結(jié)果

    1、rocketmq集群消費(fèi)模式,訂閱消息的確達(dá)到了隊(duì)列負(fù)載均衡,與這種負(fù)載均衡消費(fèi)相關(guān)的因素有: master機(jī)器個(gè)數(shù)、 特定topic的queue個(gè)數(shù),這兩個(gè)數(shù)值相乘,才是rocketmq最終計(jì)算隊(duì)列的總數(shù)。

    2、rocketmq的集群消費(fèi)能力,保證消息準(zhǔn)確性,完整性,所有被消費(fèi)的消息總數(shù)與producer端發(fā)送的消息總數(shù)是一致的,不存在消息丟棄的情況。

    3、分析consumer消費(fèi)日志,說(shuō)明每條消息在相同consumerGroup組的不同consumer端中僅僅只會(huì)被消費(fèi)一次。

    4、在集群消費(fèi)模式下,如果consumer的總數(shù),超過(guò)了隊(duì)列總數(shù),那么多余的consumer端將不能消費(fèi)消息。

以上是“如何實(shí)現(xiàn)Rocketmq集群消費(fèi)測(cè)試”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

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

AI