精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

RocketMQ這樣做,壓測后性能提高30%

開發 前端
從官方這邊獲悉,RocketMQ在4.9.1版本中對消息發送進行了大量的優化,性能提升十分顯著,接下來請跟著我一起來欣賞大神們的杰作。

[[438353]]

從官方這邊獲悉,RocketMQ在4.9.1版本中對消息發送進行了大量的優化,性能提升十分顯著,接下來請跟著我一起來欣賞大神們的杰作。

根據RocketMQ4.9.1的更新日志,我們從中提取到關于消息發送性能優化的【Issues:2883】,詳細鏈接如下:

具體優化點如截圖所示:

首先先嘗試對上述優化點做一個簡單的介紹:

  • 對WaitNotifyObject的鎖進行優化(item2)
  • 移除HAService中的鎖(item3)
  • 移除GroupCommitService中的鎖(item4)
  • 消除HA中不必要的數組拷貝(item5)
  • 調整消息發送幾個參數的默認值(item7)
    • sendMessageThreadPoolNums
    • useReentrantLockWhenPutMessage
    • flushCommitLogTimed
    • endTransactionThreadPoolNums

減少瑣的作用范圍(item8-12)

通過閱讀上述的變更,總結出優化手段主要包括如下三點:

  • 移除不必要的鎖
  • 降低鎖粒度(范圍)
  • 修改消息發送相關參數

接下來結合源碼,從中挑選具有代表性功能進行詳細剖析,一起領悟Java高并發編程的魅力。

1、移除不必要的鎖

本次性能優化,主要針對的是RocketMQ同步復制場景。

我們首先先來簡單介紹一下RocketMQ主從同步在編程方面的技巧。

RocketMQ主節點將消息寫入內存后, 如果采用同步復制,需要等待從節點成功寫入后才能向消息發送客戶端返回成功,在代碼編寫方面也極具技巧性,時許圖如下圖所示:

溫馨提示:在RocketMQ4.7版本開始對消息發送進行了優化,同步消息發送模型引入了jdk的CompletableFuture實現消息的異步發送。

核心步驟解讀:

  • 消息發送線程調用Commitlog的aysncPutMessage方法寫入消息。
  • Commitlog調用submitReplicaRequest方法,將任務提交到GroupTransferService中,并獲取一個Future,實現異步編程。值得注意的是這里需要等待,待數據成功寫入從節點(內部基于CompletableFuture機制的內部線程池ForkJoin)。
  • GroupTransferService中對提交的任務依次進行判斷,判斷對應的請求是否已同步到從節點。
  • 如果已經復制到從節點,則通過Future喚醒,并將結果返回給消息發送端。

GroupTransferService代碼如下圖所示:

為了更加方便大家理解接下來的優化點,首先再總結提煉一下GroupTransferService的設計理念:

  • 首先引入兩個List結合,分別命名為讀、寫鏈表。
  • 外部調用GroupTransferService的putRequest請求,將存儲在寫鏈表中(requestWrite)。
  • GroupTransferService的run方法從requestRead鏈表中獲取任務,判斷這些任務對應的請求的數據是否成功寫入到從節點。
  • 每當requestRead中沒有數據可讀時,兩個隊列進行交互,從而實現讀寫分離,降低鎖競爭。

新版本的優化點主要包括:

  • 更改putRequest的鎖類型,用自旋鎖替換synchronized
  • 去除doWaitTransfer方法中多余的鎖

1.1 使用自旋鎖替換synchronized

正入下圖所示,GroupTransferService向外提供接口putRequest,用來接受外部的同步任務,需要對ArrayList加鎖進行保護,往ArrayList中添加數據屬于一個內存操作,操作耗時小。

故這里沒必要采取synchronized這種synchronized,而是可以自旋鎖,自旋鎖的實現非常輕量級,其實現如下圖所示:

整個鎖的實現就只需引入一個AtomicBoolean,加鎖、釋放鎖都是基于CAS操作,非常的輕量,并且自旋鎖不會發生線程切換。

1.2 去除多余的鎖

“鎖”的濫用是一個非常普遍的現象,多線程環境編程是一個非常復雜的交互過程,在編寫代碼過程中我們可能覺得自己無法預知這段代碼是否會被多個線程并發執行,為了謹慎起見,就直接簡單粗暴的對其進行加鎖,帶來的自然是性能的損耗,這里將該鎖去除,我們就要結合該類的調用鏈條,判斷是否需要加鎖。

整個GroupTransferService中在多線程環境中運行需要被保護的主要是requestRead與requestWrite集合,引入的鎖的目的也是確保這兩個集合在多線程環境下安全訪問,故我們首先應該梳理一下。

GroupTransferService的核心方法的運作流程:

doWaitTransfer方法操作的主要對象是requestRead鏈表,而且該方法只會被GroupTransferService線程調用,并且requestRead中方法會在swapRequest中被修改,但這兩個方法是串行執行,而且在同一個線程中,故無需引入鎖,該鎖可以移除。

但由于該鎖被移除,在swapRequests中進行加鎖,因為requestWrite這個隊列會被多個線程訪問,優化后的代碼如下:

從這個角度來看,其實主要是將鎖的類型由synchronized替換為更加輕量的自旋鎖。

2、降低鎖的范圍

被鎖包裹的代碼塊是串行執行,即無法并發,在無法避免鎖的情況下,降低鎖的代碼塊,能有效提高并發度,圖解如下:

如果多個線程區訪問lock1,lock2,在lock1中domSomeThing1、domSomeThing2這兩個方法都必須串行執行,而多個線程同時訪問lock2方法,doSomeThing1能被多個線程同時執行,只有doSomething2時才需要串行執行,其整體并發效果肯定是lock2,基于這樣理論:得出一個鎖使用的最佳實踐:被鎖包裹的代碼塊越少越好。

在老版本中,消息寫入加鎖的代碼塊比較大,一些可以并發執行的動作也被鎖包裹,例如生成offsetMsgId。

新版本采用函數式編程的思路,只是定義來獲取msgId的方法,在進行消息寫入時并不會執行,降低鎖的粒度,使得offsetMsgId的生成并行化,其編程手段之巧妙,值得我們學習。

3、調整消息發送相關的參數

sendMessageThreadPoolNums

Broker端消息發送端線程池數量,該值在4.9.0版本之前默認為1,新版本調整為操作系統的CPU核數,并且不小于4。該參數的調整有利有弊。提高了消息發送的并發度,但同時會導致消息順序的亂序,其示例圖如下同步發送下不會有順序問題,可放心修改。

在順序消費場景,該參數不建議修改。在實際過程中應該對RocketMQ集群進行治理,順序消費的場景使用專門集群。

useReentrantLockWhenPutMessage MQ消息寫入時對內存加鎖使用的鎖類型,低版本之前默認為false,表示默認使用自旋鎖;新版本使用ReentrantLock。自旋主要的優勢是沒有線程切換成本,但自旋容易造成CPU的浪費,內存寫入大部分情況下是很快,但RocketMQ比較依賴頁緩存,如果出現也緩存抖動,帶來的CPU浪費是非常不值得,在sendMessageThreadPoolNums設置超過1之后,鎖的類型使用ReentrantLock更加穩定。

flushCommitLogTimed 首先我們通過觀察源碼了解一下該參數的含義:

其主要作用是控制刷盤線程阻塞等待的方式,低版本flushCommitLogTimed為false,默認使用CountDownLatch,而高版本則直接使用Thread.sleep。猜想的原因是刷盤線程比較獨立,無需與其他線程進行直接的交互協作,故無需使用CountDownLatch這種專門用來線程協作的“外來和尚”。

endTransactionThreadPoolNums 

主要用于設置事務消息線程池的大小。

新版本主要是可通過調整發送線程池來動態調節事務消息的值,這個大家可以根據壓測結果動態調整。

責任編輯:武曉燕 來源: 中間件興趣圈
相關推薦

2025-07-31 01:47:00

2014-11-25 11:37:17

壓測 軟件測試

2018-07-20 05:37:34

2023-02-22 08:15:13

壓測模擬計算

2023-01-03 10:30:00

Java工具

2020-09-23 09:20:58

代碼Java字符串

2023-01-05 11:44:43

性能HTTPS

2018-01-10 14:08:34

阿里雙11壓測

2024-06-26 08:55:29

2025-05-07 08:20:00

Flink壓測大數據

2025-05-09 08:30:00

2025-09-25 07:54:41

Apache服務器性能

2019-08-19 00:14:12

網絡測試帶寬網絡流量

2022-11-25 18:49:11

云原生

2009-09-23 14:56:06

Sun開放存儲

2023-04-11 08:35:59

線程池Java

2023-10-31 18:12:03

壓測工具測試

2018-11-14 12:32:17

華為云

2016-08-08 18:11:50

服務器壓力測試
點贊
收藏

51CTO技術棧公眾號

亚洲天堂手机版| 国产主播自拍av| 中文字字幕在线观看| 久久婷婷蜜乳一本欲蜜臀| 在线播放日韩导航| 青青草视频在线免费播放| 国产午夜在线视频| 国产精一区二区三区| 91国在线精品国内播放| 男人晚上看的视频| 免费福利视频一区| 欧美精品在线观看播放| 少妇人妻无码专区视频| 日本中文字幕在线2020| 国产99精品国产| 国产成人免费av电影| 国产又黄又粗的视频| 国产精品毛片久久久| 欧美日韩免费高清一区色橹橹 | 欧美黄色小说| 国产美女av一区二区三区| 欧美一级高清免费播放| 成年人一级黄色片| 欧美一区二区三区高清视频| 亚洲精品在线观看网站| 亚洲欧美日韩精品一区| 国模套图日韩精品一区二区| 亚洲在线观看免费| 中文精品一区二区三区| 欧美日韩激情视频一区二区三区| 国产乱人伦精品一区二区在线观看 | 国产人妻一区二区| 成午夜精品一区二区三区软件| 欧美日韩高清一区二区不卡| 97视频在线免费播放| 欧美伦理免费在线| 综合网在线视频| 亚洲视频精品一区| 国产黄色在线播放| 久久综合九色综合97婷婷女人| 成人黄动漫网站免费| 91久久国语露脸精品国产高跟| 日韩精品视频网| 欧美性受xxxx黑人猛交| 亚洲国产精品午夜在线观看| 欧美在线亚洲| 久久夜精品香蕉| 麻豆网址在线观看| 久久国产电影| 一区二区亚洲欧洲国产日韩| 性欧美丰满熟妇xxxx性仙踪林| 91亚洲精品视频在线观看| 欧美一级日韩免费不卡| 中国黄色片一级| 91九色成人| 67194成人在线观看| 国产探花在线看| www.久久久.com| 欧美精品第1页| 午夜免费一级片| 精品国产一区二区三区2021| 制服丝袜亚洲网站| 日本成人在线免费| 国产精品国产| 日韩成人在线视频网站| 久久精品成人av| 欧洲杯足球赛直播| 精品国产一区久久久| 777777国产7777777| 久久久久免费av| 欧美精品免费播放| 国产一级做a爰片在线看免费| 欧美天天视频| 欧美孕妇性xx| 这里只有精品9| 国产精品一区在线观看你懂的| 91传媒视频在线观看| 六月丁香综合网| 97se亚洲国产综合自在线观| 日本一区二区三区视频在线播放| 69xxxx欧美| 一区二区三区四区中文字幕| 人妻夜夜添夜夜无码av| 三级成人在线| 欧美一区二区三区白人| 中文字幕天堂av| 精品国产91久久久久久浪潮蜜月| 久久精品国产91精品亚洲| 少妇久久久久久被弄高潮| 日韩午夜在线电影| 国产精品一区二区久久| 亚洲国产精品视频在线| 久久久久久免费网| 欧美大片免费播放| 午夜精品久久久久久久久久蜜桃| 欧美日韩国产美女| www.555国产精品免费| 伊人春色精品| 欧美另类高清videos| 亚洲精品午夜国产va久久成人| 美国欧美日韩国产在线播放| 国产精品对白一区二区三区| 国产三级视频在线看| 亚洲一卡二卡三卡四卡无卡久久| 国产成人无码av在线播放dvd| 精品一区二区三区免费看| 精品中文视频在线| 劲爆欧美第一页| 日本欧美一区二区三区乱码 | 欧美a一欧美| 最新中文字幕亚洲| 欧美一区二区三区四| 国产成人亚洲综合色影视| 欧美一区二区影视| av电影在线地址| 91精品国产品国语在线不卡| 国产熟妇久久777777| 国产精品va| 国产日韩专区在线| youjizz在线播放| 午夜精品福利视频网站| 日韩欧美色视频| av亚洲免费| 热久久99这里有精品| 精品久久无码中文字幕| 国产精品电影一区二区三区| 国产成人亚洲精品无码h在线| 成功精品影院| 欧美激情国产日韩精品一区18| 中文字幕乱码一区二区| 久久久一区二区三区| 欧美日韩精品在线一区二区| 日韩欧洲国产| 久久伊人色综合| 日本免费精品视频| 91香蕉视频污在线观看| 91网址在线播放| 日韩经典在线视频| 91精品免费久久久久久久久| 久久久国产在线视频| 精品亚洲一区二区| 欧美一区二区三区免费观看视频| 欧美日韩国产黄| 亚洲成人一区在线| 91美女片黄在线观看| 日本女优在线视频一区二区 | 人体私拍套图hdxxxx| 亚洲激情久久| 91九色单男在线观看| 免费高清在线观看| 欧美精品自拍偷拍动漫精品| 亚洲综合图片一区| 九九国产精品视频| 国产三级中文字幕| 欧美区一区二区| 久久99青青精品免费观看| 国产女人高潮的av毛片| 一区二区三区成人在线视频| 色婷婷狠狠18禁久久| 黄色日韩在线| 精品国产一区二区三区麻豆免费观看完整版| 日本三级在线观看网站| 亚洲成人性视频| 欧美 日韩 精品| 久久精品水蜜桃av综合天堂| 国产性生交xxxxx免费| 首页国产精品| 亚洲精品欧美一区二区三区| 色呦呦在线看| 日韩高清中文字幕| 久久久久久久久久一级| 国产精品久久久久精k8| 9191在线视频| 久久av一区| 亚洲开发第一视频在线播放| 懂色av色香蕉一区二区蜜桃| 久久久久久久久久久网站| 无码精品人妻一区二区三区影院| 欧美性xxxx极品hd满灌| 性欧美一区二区| 狠狠狠色丁香婷婷综合久久五月| www成人免费| 性人久久久久| 成人春色激情网| a级片免费在线观看| 亚洲片在线观看| 国产乱淫a∨片免费观看| 亚洲va国产天堂va久久en| 一道本在线观看| 国产一二精品视频| 黄色动漫网站入口| 国产精品久久久久久久久妇女| 成人h视频在线观看| 深夜成人福利| 色综合久综合久久综合久鬼88 | 国产一精品一av一免费爽爽| 91禁外国网站| 精品视频在线一区二区| 亚洲精品美女在线观看| 国产视频aaa| 色综合色狠狠综合色| 色婷婷在线视频观看| 久久久国产精品麻豆| 国产一级二级av| 日本麻豆一区二区三区视频| 国产精品videossex国产高清 | 亚洲精品白虎| 99久久香蕉| 国产精品一区二区三区毛片淫片| 1区2区在线| 久久婷婷国产麻豆91天堂 | 国产又爽又黄的视频| 欧美视频xxx| 日韩欧美精品一区二区综合视频| 99精品视频一区| 亚洲免费999| 亚洲青色在线| 糖心vlog在线免费观看| 日韩精品四区| 欧美激情第六页| 国产精品高潮呻吟久久久久| 成人免费淫片视频软件| 欧美影视资讯| 全球成人中文在线| av日韩中文| 欧美大片网站在线观看| 九七电影韩国女主播在线观看| 亚洲人a成www在线影院| 午夜福利一区二区三区| 精品sm捆绑视频| 亚洲av无码专区在线| 777午夜精品视频在线播放| 最近中文字幕免费在线观看| 色综合久久久久久久| 91在线看视频| 午夜精品久久久久久久久| 久久精品一区二区三| 亚洲精品乱码久久久久久黑人 | 国产一区二区三区四区| 精品日本一区二区| 狼人天天伊人久久| 久久综合九色综合久99| 日本一道高清一区二区三区| 国产精品一区二区三区四区五区 | 91在线亚洲| 国产精品第一第二| 欧美极品影院| 国产精品精品视频| 99蜜月精品久久91| 成人h片在线播放免费网站| 青青草国产一区二区三区| 91精品久久久久久综合乱菊 | 女人黄色一级片| 国产日产欧美精品一区二区三区| 一区二区黄色片| 中文字幕国产一区| 午夜国产福利视频| 亚洲日本成人在线观看| 久草中文在线视频| 性久久久久久久久| 特级做a爱片免费69| 在线影视一区二区三区| 怡春院在线视频| 欧美一区永久视频免费观看| 不卡av中文字幕| 亚洲国产精品福利| 国产区视频在线| 俺去了亚洲欧美日韩| 污的网站在线观看| 57pao成人国产永久免费| 色香欲www7777综合网| 国产欧美日韩视频| 视频在线亚洲| 欧美精品国产精品久久久| 欧美丝袜激情| 国产成人在线小视频| 国产精品乱看| 欧美国产日韩另类| 成人免费看视频| 色综合99久久久无码国产精品| 国产精品久久99| 日韩精品一区二区三区国语自制| 色哟哟一区二区在线观看| 国产精品色综合| 日韩高清av在线| www.久久ai| 欧美一级在线播放| 亚洲成人1区| 精品免费二区三区三区高中清不卡 | 欧美电影在线免费观看| 免费观看成年人视频| 国产一区二区黑人欧美xxxx| 黄网在线免费看| 国产精品日韩在线| 麻豆成人入口| 午夜啪啪福利视频| 久久久蜜桃一区二区人| 中文字幕一二三| 久久精品一区二区| 久久99久久久| 欧美乱妇20p| 日本视频在线观看一区二区三区| 久久影视电视剧免费网站| 电影网一区二区| 超碰在线97av| 欧美韩国日本在线观看| 女性女同性aⅴ免费观女性恋| 国产在线日韩欧美| 公肉吊粗大爽色翁浪妇视频| 亚洲va天堂va国产va久| 国产又粗又猛又黄| 亚洲视频精品在线| 欧美另类老肥妇| 99理论电影网| 亚洲欧美综合久久久| 日本va中文字幕| 久久久久亚洲综合| 日韩成年人视频| 日韩午夜中文字幕| 午夜在线免费观看视频| 国产精品av在线播放| 另类春色校园亚洲| 欧美图片激情小说| 国产精品一品视频| 在线看的片片片免费| 欧美性色黄大片手机版| 免费一级毛片在线观看| 97精品久久久| 国内精品免费| 97超碰国产精品| 国产精品影音先锋| 精国产品一区二区三区a片| 91精品国产欧美一区二区18 | 97碰在线观看| 男人的天堂久久| 日韩五码在线观看| av在线这里只有精品| 欧美人与性禽动交精品| 亚洲视频精选| 精品日韩在线播放| 国产一区二区三区在线观看免费视频 | www.神马久久| 欧美交换配乱吟粗大25p| 国产在线一区二区| 久久国产高清视频| 56国语精品自产拍在线观看| 蜜桃视频在线观看免费视频网站www| 国产精品黄视频| 999久久久国产精品| 亚洲精品www.| 亚洲欧美一区二区久久| 国产夫妻自拍av| 欧美激情精品久久久久久免费印度 | 免费黄色在线观看| 91色精品视频在线| 欧美午夜在线视频| 2一3sex性hd| 色一情一伦一子一伦一区| 国际av在线| 国产在线视频91| 欧美日韩亚洲一区| 动漫美女无遮挡免费| 精品人伦一区二区三区蜜桃免费| 色猫av在线| 国产精品视频一区二区高潮| 亚洲电影在线一区二区三区| 成人一区二区三区仙踪林| 黄色成人在线播放| 国产精品视频一区二区久久| 91精品国产自产在线| 狠狠色综合网| 精品成人av一区二区三区| 欧美日韩国产小视频| 国产网红女主播精品视频| 麻豆久久久9性大片| 免费在线欧美视频| 麻豆chinese极品少妇| 日韩精品欧美激情| 欧洲亚洲精品| 国产原创中文在线观看| 国产精品三级av| 亚洲男女视频在线观看| 国产精品99久久久久久久久久久久| 欧美残忍xxxx极端| 又黄又爽又色的视频| 日韩欧美中文免费| 国产网站在线免费观看| 久久手机视频| 国产一区二区91| 国产精品久久久久久久久久久久久久久久久 | 欧美激情91| 国产肥白大熟妇bbbb视频| 欧美一区二区三区的| 日韩欧美看国产| 国产美女作爱全过程免费视频| 久久久国产午夜精品| 亚洲AV无码精品自拍| 国产精品欧美亚洲777777| 99re国产精品| 熟女av一区二区|