我為看一張圖片,跨過(guò)了 2600 公里!
我寫技術(shù)文章畫的圖片是保存到 GitHub 的,沒(méi)別的原因,就是因?yàn)槊赓M(fèi),但是 GitHub 訪問(wèn)的速度大家都懂的,訪問(wèn)的速度很慢。


什么是 CDN?
怎么做到的呢?
CDN 能加速什么類型的內(nèi)容?
CDN 是怎么從源服務(wù)器獲取資源的呢?
如何找到離用戶最近的 CDN 節(jié)點(diǎn) ?

如果本地 DNS 服務(wù)器有緩存該網(wǎng)站的地址,則直接返回網(wǎng)站的地址;
如果沒(méi)有就通過(guò)遞歸查詢的方式,先請(qǐng)求根 DNS,根 DNS 返回頂級(jí) DNS(.com)的地址;再請(qǐng)求 .com 頂級(jí) DNS 得到 xiaolin.com 的域名服務(wù)器地址,再?gòu)?xiaolin.com 的域名服務(wù)器中查詢到 www.xiaolin.com 對(duì)應(yīng)的 IP 地址,然后返回這個(gè) IP 地址,同時(shí)本地 DNS 緩存該 IP 地址,這樣下一次的解析同一個(gè)域名就不需要做 DNS 的迭代查詢了。

看用戶的 IP 地址,查表得知地理位置,找相對(duì)最近的 CDN 節(jié)點(diǎn);
看用戶所在的運(yùn)營(yíng)商網(wǎng)絡(luò),找相同網(wǎng)絡(luò)的 CDN 節(jié)點(diǎn);
看用戶請(qǐng)求 URL,判斷哪一臺(tái)服務(wù)器上有用戶所請(qǐng)求的資源;
查詢 CDN 節(jié)點(diǎn)的負(fù)載情況,找負(fù)載較輕的節(jié)點(diǎn);
你好,我是公子龍,畢業(yè)于中科院,前大型計(jì)算機(jī)競(jìng)賽冠軍,現(xiàn)算法工程師,拿過(guò)九家大廠的 offer 。
北漂七年,從小白到計(jì)算機(jī)競(jìng)賽冠軍,讀研時(shí)通過(guò)實(shí)習(xí)和比賽收入 50 萬(wàn),點(diǎn)擊藍(lán)字查看我的編程之路。

