亚洲v欧美v另类v综合v日韩v,好看的黄色片,这里只有精品免费视频,特级做a爱片久久久久久

五分鐘技術(shù)趣談 | 性能測試之MQTT最大設(shè)備連接數(shù)
作者 | 移動Labs2023-01-31

MQTT全名為Message Queuing Telemetry Transport,是一種基于TCP/IP協(xié)議上傳輸?shù)妮p量級通信協(xié)議。MQTT協(xié)議是一種消息隊(duì)列傳輸協(xié)議,采用訂閱、發(fā)布機(jī)制,訂閱者只接受自己已經(jīng)訂閱的數(shù)據(jù),非訂閱數(shù)據(jù)則不接受,既保證了必要的數(shù)據(jù)交換,又避免了無效數(shù)據(jù)造成的存儲與處理。因此在工業(yè)物聯(lián)網(wǎng)中得到廣泛的應(yīng)用。

MQTT協(xié)議

MQTT協(xié)議是物聯(lián)網(wǎng)平臺的最通用協(xié)議之一,也是OneNET平臺的首要設(shè)備接入?yún)f(xié)議。物聯(lián)網(wǎng)平臺必須海量設(shè)備接入,但MQTT接入服務(wù)究竟能同時(shí)支持多少設(shè)備同時(shí)在線呢?了解這個(gè)指標(biāo)能更好地為平臺的運(yùn)維和運(yùn)營提供科學(xué)的依據(jù)。

可是,如何快速簡便地測試最大在線量指標(biāo)呢?如何選取工具和制作腳本呢?

測試性能我們首先想到的是常用的Jmeter和Locust等性能測試工具。但是這些工具的優(yōu)勢在測試服務(wù)的并發(fā)和吞吐量,并不適合當(dāng)前的測試場景。

然后能想到的是利用第三方Jar包或者三方庫實(shí)現(xiàn)的協(xié)議庫,采用多線程啟動設(shè)備。但是壓力機(jī)線程啟動有限,對動則支持幾十萬上百萬設(shè)備接入量的服務(wù)簡直就是杯水車薪,需要多少壓力機(jī)難以估量。

再次能想到的是Select方法批量管理設(shè)備的Socket連接。問題又出現(xiàn)了,Select管理的異步IO也是有極限的,此方法最終還是放棄。

測試方法

經(jīng)過前面的分析、實(shí)踐最終方法確定,采用異步IO的方式批量模擬設(shè)備連接服務(wù)器,按照一定的頻率上報(bào)注冊報(bào)文,不斷遍歷設(shè)備Socket接收的緩存數(shù)據(jù),解析服務(wù)消息來判斷設(shè)備是否連接成功,并通過周期性上報(bào)心跳來保持設(shè)備持續(xù)在線。實(shí)現(xiàn)細(xì)節(jié)如下:

(1)實(shí)現(xiàn)基礎(chǔ)設(shè)備類:封裝部分MQTT協(xié)議報(bào)文方法,其中包括設(shè)備注冊、訂閱、發(fā)布、心跳等。

MQTT注冊報(bào)文封裝示例(Java)

MQTT注冊報(bào)文封裝示例(Java)

(2)實(shí)現(xiàn)設(shè)備類:主要記錄設(shè)備注冊狀態(tài)、訂閱狀態(tài)、保活間隔,最重要的服務(wù)消息的解析和響應(yīng)方法,以及設(shè)備連接服務(wù)器的非阻塞Socket(Java中的SocketChanel)

服務(wù)消息解析代碼示例(Java)

服務(wù)消息解析代碼示例(Java)

(3)實(shí)現(xiàn)程序主體類:管理批量設(shè)備,控制設(shè)備注冊頻率,設(shè)備何時(shí)上報(bào)數(shù)據(jù)、監(jiān)聽服務(wù)下發(fā)數(shù)據(jù),統(tǒng)計(jì)設(shè)備連接數(shù),持續(xù)上報(bào)心跳,保持設(shè)備在線等。具體實(shí)現(xiàn)邏輯如下:

  • 批量初始化設(shè)備列表;

  • 同時(shí)啟動一下三個(gè)線程;

  • 啟動設(shè)備注冊線程,初始化設(shè)備與服務(wù)連接并上行注冊報(bào)文,可根據(jù)設(shè)置,指定當(dāng)前可同時(shí)注冊的設(shè)備數(shù),所有設(shè)備注冊完成后自動退出;

  • 啟動連接統(tǒng)計(jì)線程,周期性統(tǒng)計(jì)設(shè)備連接成功個(gè)數(shù)、訂閱成功個(gè)數(shù)、連接失敗設(shè)備等數(shù)據(jù);

  • 啟動設(shè)備Socket遍歷線程,持續(xù)輪詢每個(gè)Socket的接收數(shù)據(jù),對接收到的數(shù)據(jù)處理和響應(yīng),每輪遍歷完畢對需要對未長時(shí)間未上報(bào)心跳的設(shè)備上行心跳報(bào)文,以達(dá)到設(shè)備保活的目的。

程序主題類接收線程邏輯代碼片段(Java)

程序主題類接收線程邏輯代碼片段(Java)

完成程序代碼后,測試工具制作完成。

此工具已實(shí)際用于項(xiàng)目性能測試中,可將壓力機(jī)全部可用端口用于最大設(shè)備在線量的測試中,實(shí)際在Linux虛擬機(jī)中幾分鐘內(nèi)完成50000+設(shè)備注冊,并保持設(shè)備長時(shí)間持續(xù)在線。

此工具能最大限度利用壓力機(jī)端口資源,提升測試執(zhí)行效率,對于在線量較大的服務(wù),只需要在更多的壓力機(jī)上運(yùn)行此工具即可。

沒有關(guān)鍵詞
熱門文章
隨著社會數(shù)字化進(jìn)程不斷的提升,數(shù)字技術(shù)正在以新方式、新理念、新形態(tài)逐漸融入我們的經(jīng)濟(jì)、文化、生產(chǎn)生活等各個(gè)領(lǐng)域乃至全過程...
2023-01-31
X
主站蜘蛛池模板: 日本人真淫视频一区二区三区| 99精品福利国产在线导航免费观看 | 国产精品所毛片视频| 国产精品入口果冻| 又大又粗又长又硬好爽高h| 《甜性涩爱》完整版在线播放| 男生隐私部位视频| 俄罗斯vivodestv欧美| 小雪好湿?好紧?太爽了日记动漫| 使劲?用力?深一点视频| 欧美一级淫片a免费播放口aaa | 国产亚洲精品久久久| 久久综合久色欧美综合狠狠| 亚洲熟伦熟女专区HD高清| 久久国产大片| 拔萝卜网站| 媚药春药精油按摩喷水| 国产农村A片国语对白| 国产国语一级毛片| 嗯啊啊啊好舒服| 亚洲无线码一区二区三区在线观看| 亚洲人成人网站色| 被爆??18禁止??久久影视| 男生把女生桶爽| 一级毛片免费一级直接观看| 公与熄bd日本中文字幕2| 好爽?好紧?人妻老师别夹H| 精品人妻无码一区二区三区网站| 偷拍区小说区图片区另类呻吟| 肉伦禁忌小说小可的奶水| 亚洲日本中文字幕无码一区日日夜| 亚洲性色精品一区二区在线| 欧美三级手机在线| 啊轻点灬大ji巴太粗太h的小说| jzzjzzjzz亚洲熟女少妇18| 午夜精品99久久免费| 色噜噜狠狠大色综合| 99久久免费精品国产免费| 在线免费观看网址| 国产综合日韩精品涩人| 推女郎李丽莎大尺度喷血|