Azure IoT Hub常見問(wèn)題,microsoft azure文字轉(zhuǎn)語(yǔ)音Azure IoT Hub常見問(wèn)題使用Event訂閱Azure IoT Hub設(shè)備上下線,如果不發(fā)快遞消息,每隔一段時(shí)間會(huì)收到一次上下線通知:所有的SDK的令牌有效期為默認(rèn)60分鐘,令牌續(xù)訂有效期約為 85%,即 60*0.85= 50分鐘左右......
使用Event訂閱Azure IoT Hub設(shè)備上下線,如果不發(fā)快遞消息,每隔一段時(shí)間會(huì)收到一次上下線通知:
所有的SDK的令牌有效期為默認(rèn)60分鐘,令牌續(xù)訂有效期約為 85%,即 60*0.85= 50分鐘左右, 在默認(rèn)的SAS令牌到期后,如果沒有任何流量來(lái)刷新token,則會(huì)遇到IoT Hub斷開設(shè)備,設(shè)備再重連的情況。
如果要調(diào)試該狀態(tài),可以在IoT hub中配置 診斷設(shè)置 到Log Analytics工作區(qū):
輸出到Log Analytics工作區(qū)中:
在日志中輸入如下指令,可以查詢到 404104 和401003的設(shè)備 deviceDisconnect 和deviceConnect的事件,事件每50分鐘左右出現(xiàn)一次。
AzureDiagnostics where ResourceProvider == MICROSOFT.DEVICES and ResourceType == IOTHUBS where Category == Connections extend parsedjson = parsejson(propertiess) extend SDKVersion = tostring(parsedjson.sdkVersion) , DeviceId = tostring(parsedjson.deviceId) , Protocol = tostring(parsedjson.protocol) distinct TimeGenerated, OperationName, Level, ResultType, ResultDescription, DeviceId, Protocol, SDKVersion關(guān)于此現(xiàn)象官網(wǎng)的解釋:
https://docs.microsoft.com/zhcn/azure/iothub/iothubtroubleshootconnectivity WT.mc352">
按照 MQTT 規(guī)范,IoT 中心的 keepalive ping 時(shí)間間隔是客戶端 keepalive 值的 1.5 倍。但是,IoT 中心將服務(wù)器端最大超時(shí)限制為 29.45 分鐘(1767 秒),因?yàn)樗?Azure 服務(wù)都綁定到了 Azure 負(fù)載均衡器 TCP 空閑超時(shí)(29.45 分鐘)。
例如,使用 Java SDK 的設(shè)備會(huì)發(fā)快遞 keepalive ping,然后失去網(wǎng)絡(luò)連接。230 秒后,設(shè)備會(huì)由于處于脫機(jī)狀態(tài)而錯(cuò)過(guò) keepalive ping。但是,IoT 中心不會(huì)立即關(guān)閉連接 它會(huì)再等待(230 * 1.5) 230 = 115秒,然后再斷開設(shè)備的連接,并顯示錯(cuò)誤 404104 DeviceConnectionClosedRemotely。
可設(shè)置的客戶端最大 keepalive 值為1767 / 1.5 = 1177秒。任何流量都將重置 keepalive。例如,成功的 SAS 令牌刷新會(huì)重置 keepalive。
參照官網(wǎng):
https://docs.microsoft.com/zhcn/azure/iothub/iothubmqttsupport?WT.mc595">
但請(qǐng)注意,100萬(wàn)設(shè)備連接到云中,是需要一定時(shí)間的,這個(gè)受限于連接速率:
“設(shè)備連接” 限制控制與 IoT 中心建立新設(shè)備連接的速率。“設(shè)備連接” 限制不控制同時(shí)連接的最大設(shè)備數(shù)。設(shè)備連接 速率限制取決于為 IoT 中心預(yù)配的單位數(shù)。
例如,如果購(gòu)買的是單一 S1 單位,則限制為每秒 100 個(gè)連接。因此,若要連接 100,000 臺(tái)設(shè)備,至少需要花費(fèi) 1,000 秒(大約 16 分鐘)。但是,同時(shí)連接的設(shè)備數(shù)可與用戶在標(biāo)識(shí)注冊(cè)表中注冊(cè)的設(shè)備數(shù)相同。
具體的連接速率參考:
限制免費(fèi)、B1 和 S1B2 和 S2B3 和 S3新設(shè)備連接(此限制適用于建立新連接的速率,而不是連接總數(shù)) | 高于 100/秒或 12/秒/單位例如, 底線是100個(gè)連接/秒,兩個(gè) S1 單位是 2*12 = 24 個(gè)新連接/秒,該值 100,則按100進(jìn)行限制。 如果有 9 個(gè) S1 單位,則你的單位就有 108 個(gè)新連接/秒 (9*12)。 | 120 個(gè)新連接/秒/單位 | 6,000 個(gè)新連接/秒/單位 |
此外,設(shè)備到云的消息發(fā)快遞也是有速率限制的:
在設(shè)計(jì)物聯(lián)網(wǎng)系統(tǒng)時(shí),要充分考慮這些限制條件,才能決定是將 S1 升級(jí)到S2 或者增加S1 的單元數(shù)。
限制免費(fèi)、B1 和 S1B2 和 S2B3 和 S3設(shè)備到云的發(fā)快遞 | 100 個(gè)發(fā)快遞操作/秒或 12 個(gè)發(fā)快遞操作/秒/單位,具體取決于哪一個(gè)更高例如,兩個(gè) S1 單位是 2*12 = 24/秒,但是在所有單位中至少有 100 個(gè)發(fā)快遞操作/秒。如果有 9 個(gè) S1 單位,則你的單位就有 108 個(gè)發(fā)快遞操作/秒 (9*12)。 | 120 個(gè)發(fā)快遞操作/秒/單位 | 6,000 個(gè)發(fā)快遞操作/秒/單位 |
云到設(shè)備的發(fā)快遞1 | 1.67 個(gè)發(fā)快遞操作/秒/單位(100 條消息/分鐘/單位) | 1.67 個(gè)發(fā)快遞操作/秒/單位(100 個(gè)發(fā)快遞操作/分鐘/單位) | 83.33 個(gè)發(fā)快遞操作/秒/單位(5,000 個(gè)發(fā)快遞操作/分鐘/單位) |
云到設(shè)備的接收1(僅當(dāng)設(shè)備使用 HTTPS 時(shí)) | 16.67 個(gè)接收操作/秒/單位(1,000 個(gè)接收操作/分鐘/單位) | 16.67 個(gè)接收操作/秒/單位(1,000 個(gè)接收操作/分鐘/單位) | 833.33 個(gè)接收操作/秒/單位(50,000 個(gè)接收操作/分鐘/單位) |
為了應(yīng)對(duì)突發(fā)流量,IoT 中心可在有限的一段時(shí)間內(nèi)接受超出限制的請(qǐng)求。其中的前幾個(gè)請(qǐng)求會(huì)立即得到處理。但是,如果請(qǐng)求數(shù)持續(xù)違反限制,IoT 中心會(huì)開始將請(qǐng)求放入隊(duì)列,并以限制速率對(duì)請(qǐng)求進(jìn)行處理。此效應(yīng)稱為“流量整形”。此外,此隊(duì)列的大小受到限制。如果違反限制的情況持續(xù)出現(xiàn),隊(duì)列最終將會(huì)填滿,而 IoT 中心會(huì)開始拒絕請(qǐng)求并引發(fā)429 ThrottlingException。
例如,如果你使用模擬設(shè)備每秒將 200 條設(shè)備到云的消息發(fā)國(guó)際快遞 S1 IoT 中心(它限制為每秒發(fā)快遞 100 條 D2C 消息)。在前一兩分鐘,消息會(huì)立即得到處理。但是,由于設(shè)備發(fā)快遞的消息數(shù)持續(xù)超過(guò)限制,IoT 中心隨后將每秒處理 100 條消息,并將剩余的消息放入隊(duì)列。此時(shí)你會(huì)注意到延遲增大。最終,在隊(duì)列填滿后,你會(huì)開始收到429 ThrottlingException,并且“限制錯(cuò)誤數(shù)”IoT 中心指標(biāo)會(huì)開始增加。若要了解如何基于指標(biāo)創(chuàng)建警報(bào)和圖表,請(qǐng)參閱監(jiān)視 IoT 中心。
參考:
https://docs.microsoft.com/zhcn/azure/iothub/iothubdevguidequotasthrottling?WT.mcid=AZMVP5003757
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問(wèn)題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問(wèn)
微信掃一掃
馬上聯(lián)系在線顧問(wèn)
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部