前言
在這次項目中我們遇到這樣的情況,在國內訪問迪拜阿里雲服務器的圖片慢,且加載有點像斷片的感覺
一開始我們通過各種找藉口,想出各種理由來爲這個慢做狡辯
- 我們是訪問國外服務器,訪問慢是正常的
- 我們使用的是海外加速,國內並沒加速,國內慢是正常的
- 國內網速環境過慢,訪問不會快的
後面我們收到反饋說國外的圖片也是加載特別慢,經常卡住的感覺,於是我們開啓了對圖片的專項優化
發現問題
我們首先是梳理了下圖片訪問的整個網絡的訪問鏈路,尋找問題到底出現在哪個環節
從時序圖上看,其實是很簡單的一個網絡訪問,似乎看上去並沒有問題,大家都覺得自己的代碼沒問題
- 從客戶端看,客戶端做了那麼多項目,都是用Glide去加載圖片,不可能會出現這種問題
- 從服務器看,服務器用的是阿里雲的服務器,本身並沒有開發業務邏輯,難道阿里雲會出問題嗎
於是我們從時序圖分析,最大的懷疑點就在服務商的DNS出現問題,那麼這塊我們要怎麼去分析呢,我們部署了一臺離迪拜比較近的服務器,通過這臺服務器去訪問迪拜阿里雲的服務器看看是什麼情況
1、traceroute迪拜阿里雲
我們直接通過tracerounte
命令去訪問迪拜阿里雲解析出來的鏈接,發現域名解析出現100ms的情況和超時的情況
2、traceroute谷歌
通過tracerounte
命令去訪問谷歌,卻發現一切正常,那麼這個時候,我們就斷定DNS似乎出現了問題
3、解決問題
後來,我們放棄了當前運營商DNS服務器的解析,採用公司自己DNS服務器去解析IP,最終解析出來的結果也是迪拜的服務器IP,但此時的解析速度幾乎是1-10ms的級別,於是圖片就自然而然的顯示正常了