網絡超時的定位
1. 手工定位
1.1 確認商戶服務器出口IP
Linux: ifconfig直接輸出已配置外網IP,如無配置外網則需要使用第二種方式《自動化工具定位》方式獲取
Windows: 可以通過瀏覽器訪問http://ip.qq.com頁面獲取
1.2 通過ping確認延時和丟包情況
Linux: ping api.mch.weixin.qq.com -c 100
Windows: ping api.mch.weixin.qq.com -n 100
1.3 通過trace確認對應的路由節點
Linux: traceroute api.mch.weixin.qq.com
Windows: tracert api.mch.weixin.qq.com
1.4 通過mtr確認對應的路由節點丟包情況
mtr -4 -i 1 api.mch.weixin.qq.com
1.5 curl測試
curl -o /dev/null -4 -v -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total}"\n" 'https://api.mch.weixin.qq.com/orderquery'
**這裏的輸出需要確認有一列的時間超過3s纔有參考意義
2. 自動化工具定位
2.1 運行工具命令:
./wxpaymonitor -t
2.2 工具運行輸出結果:
2.3 自動化工具定位說明:
◆ 工具最優接入IP建議
從ping測延時的結果會按照延時最低到最高的排序,其中最優IP需要與RemoteIp能匹配。如果IP的耗時爲9999.999ms則表示該IP不通,同時會有i/o timeout的條目提示。如果商戶測試的RemoteIp與該條目錄一致,則可以確認存在網絡異常。
◆ LocalDns相關的配置建議
從工具測試的結果,UserIp與LocalDns以及RemoteIp需要屬於同運營商,具體IP運營商歸屬商戶側可以通過http://ip.qq.com查詢(騰訊內部可通過http://gslb.oa.com/oss/ip_library查詢IP歸屬)
◆ 接口耗時說明
Duration:表示此次請求接口總耗時
Lookup duration:表示此次請求通過DNS解析域名耗時,如果此耗時比較高,建議確認DNS解析是否正常
Connection duration:表示此次請求連接建立耗時,如果此耗時超過1s,表示網絡層面TCP連接建立時間長
Request duration: 表示此次請求在業務層面處理的耗時,如果此耗時超過3s則需要重點排查業務處理日誌,建議商戶提供具體的單號確認問題。
總體來看請求耗時>連接耗時>DNS解析耗時,且總體耗時不超過3s屬正常範圍。
附一:微信支付回調通知出口IP列表
商戶側對商戶回調通知功能開通白名單網段:
101.226.103.0/25、140.207.54.0/25、103.7.30.0/25、183.3.234.0/25、58.251.80.0/25
說明:
上海電信出口網段101.226.103.0/25
上海聯通出口網段140.207.54.0/25
深圳電信出口網段183.3.234.0/25
深圳聯通出口網段58.251.80.0/25
香港出口網段103.7.30.0/25
注意:深圳的出口爲新增,商戶側需要新開防火牆