http請求優(yōu)化耘柱,dns查詢

有時候app里面的資源是一些外鏈,所以我們不能保證請求外鏈的結(jié)果棍现,外鏈失效或者請求速度慢或者其他問題调煎,雖然不是自己的服務(wù)器,但還是有解決的辦法己肮。

第一步士袄,外鏈先過自己的服務(wù)器,把失效的鏈接先過濾掉谎僻,剩下那些能用的鏈接娄柳,我們還需要對其進一步的優(yōu)化。

優(yōu)化的原理艘绍,我們拿到外鏈的host西土,一個host對應(yīng)著多個ip,我們需要拿到那個網(wǎng)絡(luò)最優(yōu)的ip鞍盗,如果直接拿host取訪問需了,因為ip會有緩存的緣故,每次訪問的都是同一個ip般甲。我們需要拿host去做dns查詢肋乍,查詢得到ip后,直接拿ip取訪問敷存。

這里是查詢的具體邏輯:

協(xié)議

通過一個請求返回查詢信息墓造,這個查詢服務(wù)騰訊有免費的,不過每天有固定查詢次數(shù)

218.107.196.221;218.107.196.222,180

前2個為ip用分號分隔锚烦,后面一個為TTL(過期時間)

1. dn 表示要查詢的域名

2. ttl=1 表示要求 D+服務(wù)器在響應(yīng)結(jié)果中攜帶解析結(jié)果的 ttl 值

3. 返回的ttl和域名解析結(jié)果用英文逗號分割觅闽。

4. Http請求超時時間建議設(shè)置為10s

5. ts當(dāng)前時間的時間戳


實現(xiàn)細節(jié)

1. 在內(nèi)存中緩存對應(yīng)域名的解析結(jié)果,緩存規(guī)則如下:

緩存時間:緩存時間建議采用查詢得到的域名 TTL

緩存更新應(yīng)在以下兩種情形下進行:

1. ?用戶網(wǎng)絡(luò)狀態(tài)發(fā)生變化時: 移動互聯(lián)網(wǎng)的用戶的網(wǎng)絡(luò)狀態(tài)由 3G 切 Wi-Fi涮俄,Wi-Fi 切 3G 的情況下蛉拙,其接入點的網(wǎng)絡(luò)歸屬可能會發(fā)生變化。所以在用戶的網(wǎng)絡(luò)狀態(tài)發(fā)生變化時彻亲,需要重新向服務(wù)器發(fā)起域名解析請 求孕锄,以獲取到用戶當(dāng)前網(wǎng)絡(luò)歸屬下的最優(yōu)指向吮廉。

2. 緩存過期時: 當(dāng)域名解析的結(jié)果緩存時間到期時,客戶端應(yīng)該向服務(wù)器重新發(fā)起域名解析請求以獲取最新的域名對應(yīng)的 IP畸肆。為了減少用戶在緩存過期后重新進行域名解析時的等待時間宦芦,建議在 75% TTL 時就開始進行域名解析。如本地緩存的 TTL 為 600s轴脐,那么在第 600*0.75=450s 時客戶端就應(yīng)該開始進行域名解析调卑。

2. 發(fā)起http請求時,首先從緩存中查詢是否有對應(yīng)域名的ip大咱,如果沒有則之前的邏輯不變令野,并且觸發(fā)緩存更新,如果有對應(yīng)ip徽级,則直接使用ip請求

實現(xiàn)策略:

1.?應(yīng)用啟動時觸發(fā)請求

2. ?應(yīng)用程序在前臺气破,并且網(wǎng)絡(luò)狀態(tài)發(fā)生變化時, 觸發(fā)請求(wifi切換到數(shù)據(jù)網(wǎng)絡(luò)餐抢,或相反)

3. http請求時现使,如果沒有對應(yīng)域名的ip,觸發(fā)請求旷痕,如果有對應(yīng)ip但是ttl過期碳锈,也觸發(fā)請求(ttl最小值設(shè)為10分鐘)

4. 需要解析的域名通過配置更新來獲取

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市欺抗,隨后出現(xiàn)的幾起案子售碳,更是在濱河造成了極大的恐慌,老刑警劉巖绞呈,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贸人,死亡現(xiàn)場離奇詭異,居然都是意外死亡佃声,警方通過查閱死者的電腦和手機艺智,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來圾亏,“玉大人十拣,你說我怎么就攤上這事≈揪椋” “怎么了夭问?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長曹铃。 經(jīng)常有香客問我缰趋,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任埠胖,我火速辦了婚禮,結(jié)果婚禮上淳玩,老公的妹妹穿的比我還像新娘直撤。我一直安慰自己,他們只是感情好蜕着,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布谋竖。 她就那樣靜靜地躺著,像睡著了一般承匣。 火紅的嫁衣襯著肌膚如雪蓖乘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天韧骗,我揣著相機與錄音嘉抒,去河邊找鬼。 笑死袍暴,一個胖子當(dāng)著我的面吹牛些侍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播政模,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岗宣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了淋样?” 一聲冷哼從身側(cè)響起耗式,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趁猴,沒想到半個月后刊咳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡儡司,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年芦缰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枫慷。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡让蕾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出或听,到底是詐尸還是另有隱情探孝,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布誉裆,位于F島的核電站顿颅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏足丢。R本人自食惡果不足惜粱腻,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一庇配、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绍些,春花似錦捞慌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氮帐,卻和暖如春嗅虏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背上沐。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工皮服, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人参咙。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓冰更,卻偏偏與公主長得像莫其,于是被迫代替她去往敵國和親睛琳。 傳聞我的和親對象是個殘疾皇子猎莲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 最近戚篙,終于要把《WEB請求處理系列》提上日程了践啄,一直答應(yīng)小伙伴們給分享一套完整的WEB請求處理流程:從瀏覽器欲诺、Ng...
    七寸知架構(gòu)閱讀 31,330評論 27 253
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理脊另,服務(wù)發(fā)現(xiàn)戚绕,斷路器塘娶,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 2,894評論 0 7
  • DNS(Domain Name System归斤,域名系統(tǒng)),因特網(wǎng)上作為域名和IP地址相互映射的一個分布式數(shù)據(jù)庫刁岸,能...
    一直在努力hard閱讀 4,634評論 3 19
  • 簡介 用簡單的話來定義tcpdump脏里,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 5,956評論 1 13