本文介紹使用者在用戶端使用DoH JSON API的接入方案。
DoH JSON API接入最佳實務流程
用戶端網域名稱解析機制的流程參考如下:
最佳實務的設計策略
網域名稱解析機制需要遵循以下設計策略:
兜底策略
雖然移動解析HTTPDNS已經接入 BGP Anycast,並實現了多地跨機房容災,但為了保證在最壞的情況下用戶端網域名稱解析依然不受影響,建議您採用以下的兜底策略:
1.先向移動解析HTTPDNS發起網域名稱查詢請求。
2.如果移動解析HTTPDNS查詢返回結果的statusCode為非200、連線逾時等,則通過本地 LocalDNS 進行網域名稱解析。逾時時間建議為3s。
緩衝策略
為了儘可能地減少網域名稱解析次數,建議在本地進行緩衝。緩衝規則如下:
1.緩衝時間:緩衝時間建議設定為60s至600s。
2.緩衝更新: 緩衝更新應在以下兩種情形下進行:
使用者網路狀態發生變化時:用戶端的網路狀態由WWAN切換 Wi-Fi,Wi-Fi 切換WWAN的情況下,其存取點的網路歸屬可能發生變化,需要重新向移動解析HTTPDNS發起網域名稱解析請求,以獲得使用者當前網路歸屬下的最優指向。
緩衝到期時:當網域名稱解析的結果緩衝時間到期時,用戶端應該向移動解析HTTPDNS重新發起網域名稱解析請求以擷取最新的網域名稱對應的 IP。為了使使用者在緩衝到期後儘早擷取到最新的IP地址,建議使用定時器每間隔1min更新一下到期緩衝。
IP優選策略
在向移動解析HTTPDNS發起網域名稱查詢請求並擷取到解析結果後可先將結果存入緩衝,同時非同步對解析結果進行測速(socket方式或ping方式)、排序,最後更新緩衝中的資料,通過該策略實現IP優選。
注意事項
設定的緩衝 TTL 值不可太低(不可低於60s),防止頻繁進行移動解析HTTPDNS請求造成費用增加。
接入移動解析HTTPDNS的業務需要保留使用者本地 LocalDNS 作為容災通道,當移動解析HTTPDNS無法正常服務時(網路不穩定或移動解析HTTPDNS服務出現問題),可以使用 LocalDNS 進行兜底解析。
請盡量將不同功能用同樣網域名稱,資源區分通過 url 來實現,減少網域名稱解析次數從而降低費用。
移動解析HTTPDNS請求建議逾時時間2s - 5s左右。