91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

發布時間:2021-12-17 14:27:00 來源:億速云 閱讀:200 作者:小新 欄目:云計算

這篇文章給大家分享的是有關如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一 機器部署

1、機器組成 

7臺機器,均為16G內存

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

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

    2、運行環境配置

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

3、刷盤方式

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

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

 

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

二 性能評測

1、評測目的

   測試queue接受消息負載均衡

2、評測指標

   每個queue的接受消息后,其偏移量offset大致相同

3、評測邏輯

  創建topic,并配置該topic下的queue數量(3,5,8,16),發送消息后打印該條消息對應的offset,比對消息offset增加量

4、評測過程

    (1)在master機器上創建名稱為“topicQueueOffsetTest”

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

    (2)控制臺創建的topic配置文件保存在store目錄, 查看/root/store/config/topic.json文件,即可找到該topic的原始數據

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

    (3)client端開啟5個線程,發送不同數量的消息,發送消息后記錄消息在各隊列queue的offset

    queue配置的是默認值8, 發送的消息條數 5*50=250條消息

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

        queue配置的是默認值8, 發送的消息條數 5*400=2000條消息

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

        客戶端設置queue隊列數為12,再次發送的消息條數 5*400=2000條消息,并記錄消息的offset,關鍵代碼如下

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

    此處日志顯示的 queueNum=12,是指的client端的producer獲取的queue個數,但此時后續的日志顯示,server端的queueID依然是0-7,總共8個,兩種queue的個數并不相等。

    說明在producer發送消息時,對于此前已運行的borker服務器,修改配置文件的defaultTopicQueueNums屬性的值不起作用,需要重啟服務才能使得 已運行的topic的queue個數真正生效。

    有兩種方式,可動態更改topic以及topic相關的屬性,

    第一種、編輯 master機器的/root/store/config/topic.json文件,找到topic名稱為"topicQueueOffsetCheck"的數據,更新其readQueueNums、writeQueueNums兩個屬性,并重啟master集群和slave集群

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

    第二種方式:在rocketmq控制臺動態更新topic相關數據(此方式更改后,會自動同步topic數據到其他master、其他slave,可以不用重啟master、slave服務),此處我采用的是第二種方式更新。

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

    更新server端的queue為12,再次發送2000條消息,發現新舊兩種隊列的消息offset基本已達到均衡。

    queueId為0-7的隊列,消息較多,各個隊列的消息offset幾乎相同,消息負載平衡;

    queueId為8-11的隊列,消息較少,是為新增的4個隊列,這四個隊列之間的offset也基本達到了平衡。

    縱觀這12個隊列保存的消息, queueId=0的隊列,上一次的offset偏移量為508,本次offset=594,差值594-508=86,其余quereId的消息差異量也基本在83左右。說明 動態更新queueNums,水平擴容之后, queue隊列在接受到消息后任能夠均衡存儲消息。

    從此例分析出:queue收到的消息均衡分布,指的是每個queue每次收到消息的增加量能達到均衡;并不是指擴容后新增的queue隊列的offset需要從0增加到原有隊列的offset,而原有queue需等待直至所有queue的消息偏移量offset均達到同一水平的情況。

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

    保持queueNums=12不變,增大線程個數和次數,發送6*3000=18000條消息,再次記錄消息offset,最終結果如下,所有queue的“接受消息”的新增偏移量,均能達到平衡。

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

 

保持queueNums=12不變,增大線程個數和次數,發送6*4000=24000條消息,記錄保存消息的brokerName、queueId。

分析日志,可得出結論,消息的確均衡分布到了 broker-master1、broker-master2兩臺機器的各個隊列。

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試

二 評測結果

   1、客戶端發送的消息,服務器集群收到消息后,能均衡分布到集群的每臺多臺master機器,且每臺機器的每個queue接受到的消息也是均衡分布。

   2、動態增加queueNums個數,水平擴容之后,新增的、原來的queue接受到的消息數也能達到均衡分布。

   3、服務端創建topic時會設置默認的queueNums數值,該數值的優先級高于創建producer所設置的defaultQueueNums。

   4、對于已在運行的topic,若需動態更新topic的相關屬性,推薦使用rocketmq的控制臺,通過控制臺動態更新。

感謝各位的閱讀!關于“如何實現RocketMQ隊列queue的偏移量Offset均衡分布測試”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

鄂托克前旗| 阿合奇县| 桃江县| 黄大仙区| 盘锦市| 阳原县| 扎兰屯市| 收藏| 兰坪| 镇平县| 平湖市| 商洛市| 巨野县| 鸡西市| 会理县| 安福县| 子长县| 永丰县| 洪湖市| 武定县| 镇巴县| 台南市| 太谷县| 台安县| 武义县| 竹溪县| 旅游| 新竹市| 甘孜| 澄江县| 什邡市| 普宁市| 义马市| 苏尼特左旗| 霞浦县| 藁城市| 六枝特区| 广饶县| 富裕县| 石河子市| 安仁县|