[IOT]為什麼用 ServiceClient 送訊息第一次要花很久的時間

最近同事發現,在 Web API 中透過 ServiceClient 發訊息到 Azure IOT Hub ,

第一次居然要等 20 幾秒。 如下圖,

這20幾秒到底發生了什麼事呢? 

預設的 AMQP 是走 5671 的 Port,所以我們可以用以下的 Command 來看狀況,如下,

netstat -an | find "5671"

可以看到要連到 207.46.138.102 的 5671 Port, 

所以我們可以關注 207.46.138.102 這個 IP ,所以改用

netstat -an | find "207.46.138.102"

一直都是 SYN_SENT ,到後來,居然改用 443 去建立連線,如下圖,

所以可以了解到的是,應該是因為不允許連到 207.46.138.102 的 5671 Port,

ServiceClient 就改走 443 Port ,而時間是則是花費在 Retry 上面。

所以我們跟 MIS 申請開放 5671 Port。再試一次,花費大約 1.6 ~ 2 秒的時間,如下,

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^