18禁免费观看完整版高清-毛片重口味女人的逼-99精品毛片免费播放高潮-2020年国产新视频

當(dāng)前位置: 首頁(yè) >應(yīng)用方案 >技術(shù)應(yīng)用 >

MQTT的QoS服務(wù)質(zhì)量及其應(yīng)用解析

億佰特研發(fā)生產(chǎn)的串口服務(wù)器、CAN-bus轉(zhuǎn)以太網(wǎng)CAN模組、以太網(wǎng)邊緣采集IO網(wǎng)關(guān)等系列產(chǎn)品擁有MQTT工作模式,在此工作模式下,可以選擇使用阿里云平臺(tái)進(jìn)行相關(guān)測(cè)試與通信。

MQTT(Message Queuing Telemetry Transport)是一種輕量級(jí)的發(fā)布/訂閱消息傳輸協(xié)議,廣泛應(yīng)用于物聯(lián)網(wǎng)(IoT)領(lǐng)域。MQTT協(xié)議核心特性之一是QoS(Quality of Service,服務(wù)質(zhì)量),通過(guò)定義消息傳遞的可靠性級(jí)別,適應(yīng)不同的網(wǎng)絡(luò)環(huán)境和業(yè)務(wù)需求。本文將深入解析MQTT的QoS三級(jí)服務(wù)等級(jí),并結(jié)合實(shí)際場(chǎng)景舉例說(shuō)明其應(yīng)用場(chǎng)景和特點(diǎn)。

一、QoS是什么?簡(jiǎn)單分類

MQTT協(xié)議的QoS(服務(wù)質(zhì)量)其實(shí)就是消息傳遞的可靠性等級(jí),分三個(gè)級(jí)別,對(duì)應(yīng)不同的“靠譜程度”。

1.QoS0(最多傳一次)

-本質(zhì):發(fā)出去就不管了,不確認(rèn)也不重傳。

-適合場(chǎng)景:比如監(jiān)控辦公室溫度,偶爾丟幾條數(shù)據(jù)沒(méi)關(guān)系,反正不影響整體趨勢(shì)。

2.QoS1(至少傳一次)

-本質(zhì):發(fā)完會(huì)等對(duì)方回個(gè)“收到”,沒(méi)回就一直重發(fā),但可能會(huì)重復(fù)。

-適合場(chǎng)景:比如遠(yuǎn)程控制家里空調(diào)關(guān)機(jī),怕指令沒(méi)傳到,但重復(fù)關(guān)一次也沒(méi)啥問(wèn)題。

3.QoS2(必須傳一次且只傳一次)

-本質(zhì):玩命保證消息不丟不重,但流程復(fù)雜,傳輸時(shí)間長(zhǎng)。

-適合場(chǎng)景:比如銀行轉(zhuǎn)賬,必須確保指令絕對(duì)準(zhǔn)確,不能多扣錢也不能漏掉。

二、QoS實(shí)際案例

1.QoS0:能省事就省事

場(chǎng)景舉例做工廠設(shè)備監(jiān)控系統(tǒng),傳感器每秒上傳一次數(shù)據(jù)。

踩坑經(jīng)歷一開始用QoS1,結(jié)果發(fā)現(xiàn)數(shù)據(jù)量太大,服務(wù)器扛不住。后來(lái)改用QoS0,雖然偶爾丟數(shù)據(jù),但分析趨勢(shì)時(shí)影響不大,反而系統(tǒng)更穩(wěn)定了。

經(jīng)驗(yàn)總結(jié)網(wǎng)絡(luò)環(huán)境好+數(shù)據(jù)允許少量丟失=選QoS0。

2.QoS1:相對(duì)可靠

場(chǎng)景舉例客戶要做智能門鎖遠(yuǎn)程解鎖功能。

踩坑經(jīng)歷QoS1后發(fā)現(xiàn),偶爾因?yàn)榫W(wǎng)絡(luò)延遲,門鎖會(huì)收到重復(fù)的“開鎖”指令,會(huì)導(dǎo)致用戶反饋“鎖老是自己開”。在業(yè)務(wù)層加了個(gè)去重邏輯,比如30秒內(nèi)重復(fù)指令直接忽略。

經(jīng)驗(yàn)總結(jié)控制類指令選QoS1,但業(yè)務(wù)層必須處理重復(fù)問(wèn)題。

3.QoS2:絕對(duì)可靠但代價(jià)高

場(chǎng)景舉例醫(yī)療設(shè)備上傳患者生命體征數(shù)據(jù)到云端。

踩坑經(jīng)歷因?yàn)橛?/span>QoS1,某次網(wǎng)絡(luò)波動(dòng)導(dǎo)致數(shù)據(jù)丟失,差點(diǎn)耽誤診斷。后面硬著頭皮改成QoS2,傳輸速度慢了點(diǎn),但數(shù)據(jù)絕對(duì)不丟不重。

經(jīng)驗(yàn)總結(jié)醫(yī)療/金融這種敏感場(chǎng)景,必須用QoS2,哪怕犧牲性能。

三、怎么選QoS等級(jí)?

1.先看網(wǎng)絡(luò)環(huán)境

-網(wǎng)絡(luò)穩(wěn)定(比如局域網(wǎng))→QoS1足夠。

-網(wǎng)絡(luò)差(比如移動(dòng)網(wǎng)絡(luò))→QoS2更安心。

2.再看業(yè)務(wù)需求

-數(shù)據(jù)趨勢(shì)分析→QoS0。

-控制類指令→QoS1。

-金融/醫(yī)療等高風(fēng)險(xiǎn)場(chǎng)景→QoS2。

3.需要權(quán)衡資源

-QoS2雖然可靠,但消息要存狀態(tài)、多握手,對(duì)設(shè)備內(nèi)存和CPU要求高。如果設(shè)備是低端單片機(jī),別硬上QoS2。

四、常見誤區(qū)和避坑指南

1.誤區(qū)1:QoS等級(jí)越高越好

真相QoS2的開銷是QoS0的5倍以上!比如我們做過(guò)測(cè)試,1000條消息用QoS2QoS0多耗電30%。

2.誤區(qū)2:QoS1永遠(yuǎn)不會(huì)丟消息

真相如果發(fā)送方發(fā)完消息就斷網(wǎng)了,PUBACK可能收不到,這時(shí)候消息其實(shí)丟了。QoS1只能保證“至少一次”,但極端情況下還是可能失敗。

3.誤區(qū)3:業(yè)務(wù)層不用處理重復(fù)

真相QoS1的重復(fù)消息必須自己處理!比如我們之前做智能電表抄表,重復(fù)指令導(dǎo)致電量記錄出錯(cuò),后來(lái)加了個(gè)“唯一ID+緩存校驗(yàn)”才解決。

五、總結(jié)一下

MQTT的QoS服務(wù)等級(jí)


小億經(jīng)驗(yàn)建議

新手建議先從QoS1練手,熟悉協(xié)議流程后再嘗試QoS2。

調(diào)試技巧Wireshark抓包看看QoS握手過(guò)程,能快速定位問(wèn)題。

性能優(yōu)化QoS2的消息ID別用UUID,用遞增的整數(shù),省內(nèi)存。


今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多無(wú)線數(shù)傳模塊產(chǎn)品物聯(lián)網(wǎng)應(yīng)用技術(shù)資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!


相關(guān)閱讀:

1、MQTT消息等級(jí)詳解

2、MQTT通信協(xié)議報(bào)文詳解

3、西門子PLC利用函數(shù)塊連接MQTT服務(wù)器發(fā)布消息教程

4、什么是MQTT?MQTT協(xié)議有什么技術(shù)優(yōu)勢(shì)?


點(diǎn)擊撥打: 億佰特官網(wǎng) 4000-330-990