www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 小林coding
[導(dǎo)讀]大家好,我是小林。我寫(xiě)技術(shù)文章畫(huà)的圖片是保存到GitHub的,沒(méi)別的原因,就是因?yàn)槊赓M(fèi),但是GitHub訪(fǎng)問(wèn)的速度大家都懂的,訪(fǎng)問(wèn)的速度很慢。所以我會(huì)用CDN來(lái)加速圖片的訪(fǎng)問(wèn),也就是我的圖床的方案是GitHubjsdelivrCDN,使用很簡(jiǎn)單,只需要把域名地址替換一下就行。那為...

大家好,我是小林。

我寫(xiě)技術(shù)文章畫(huà)的圖片是保存到 GitHub 的,沒(méi)別的原因,就是因?yàn)槊赓M(fèi),但是 GitHub 訪(fǎng)問(wèn)的速度大家都懂的,訪(fǎng)問(wèn)的速度很慢。所以我會(huì)用 CDN 來(lái)加速圖片的訪(fǎng)問(wèn),也就是我的圖床的方案是 GitHub jsdelivr CDN,使用很簡(jiǎn)單,只需要把域名地址替換一下就行。那為什么訪(fǎng)問(wèn) GitHub 會(huì)很慢呢?GitHub 離國(guó)內(nèi)就近的服務(wù)器是在新加波,距離我這有 2600 公里,也就是說(shuō),訪(fǎng)問(wèn) GitHub 上的一張圖片,一個(gè)數(shù)據(jù)包就要走 2600 公里這么遠(yuǎn)!而且,互聯(lián)網(wǎng)從邏輯上看是一張大網(wǎng),但實(shí)際上是由許多小網(wǎng)絡(luò)組成的,每個(gè)網(wǎng)絡(luò)絡(luò)中還存在許多的路由器、網(wǎng)關(guān),數(shù)據(jù)每經(jīng)過(guò)一個(gè)節(jié)點(diǎn),都要處理一下,在二層、三層解析轉(zhuǎn)發(fā),這也會(huì)消耗一定的時(shí)間,帶來(lái)延遲。把這些因素再放到全球來(lái)看,地理距離、運(yùn)營(yíng)商網(wǎng)絡(luò)、路由轉(zhuǎn)發(fā)的影響就會(huì)成倍增加,也就是訪(fǎng)問(wèn) GitHub 慢的一個(gè)原因。那我是怎么知道 GitHub 服務(wù)器在哪的呢?很簡(jiǎn)單,ping www.github.com 后,就會(huì)顯示出服務(wù)器的 ip 地址,然后把 ip 地址用百度搜索,就能查到該服務(wù)器是在哪里的了。圖片資源是靜態(tài)資源,所以要解決訪(fǎng)問(wèn)慢的問(wèn)題,就可以用 CDN 加速。在我加上 jsdelivr CDN 后,GitHub 的圖片就會(huì)被緩存到 CDN 服務(wù)器上,而深圳正好就有一臺(tái) jsdelivr 的 CDN 服務(wù)器。這樣我訪(fǎng)問(wèn) GitHub 圖片不用再大老遠(yuǎn)跑去新加波的服務(wù)器,而是遵循就近訪(fǎng)問(wèn)原則,直接訪(fǎng)問(wèn)離深圳的這臺(tái) CDN 服務(wù)器,大大加快了訪(fǎng)問(wèn)速度。這次,我們就來(lái)好好聊一聊 CDN。開(kāi)車(chē)?yán)玻?h3>什么是 CDN?CDN 的全稱(chēng)叫 Content Delivery Network,中文名叫「內(nèi)容分發(fā)網(wǎng)絡(luò)」,它是解決由于長(zhǎng)距離而網(wǎng)絡(luò)訪(fǎng)問(wèn)速度慢的問(wèn)題。
怎么做到的呢?
簡(jiǎn)單來(lái)說(shuō),CDN 將內(nèi)容資源分發(fā)到位于多個(gè)地理位置機(jī)房中的服務(wù)器上,這樣我們?cè)谠L(fǎng)問(wèn)內(nèi)容資源的時(shí)候,不用訪(fǎng)問(wèn)源服務(wù)器。而是直接訪(fǎng)問(wèn)離我們最近的 CDN 節(jié)點(diǎn) ,這樣一來(lái)就省去了長(zhǎng)途跋涉的時(shí)間成本,從而實(shí)現(xiàn)了網(wǎng)絡(luò)加速。
CDN 能加速什么類(lèi)型的內(nèi)容?
CDN 加速的是內(nèi)容資源是靜態(tài)資源。所謂的「靜態(tài)資源」是指數(shù)據(jù)內(nèi)容靜態(tài)不變,任何時(shí)候來(lái)訪(fǎng)問(wèn)都是一樣的,比如圖片、音頻。與之相反的「動(dòng)態(tài)資源」,是指數(shù)據(jù)內(nèi)容是動(dòng)態(tài)變化的,每次訪(fǎng)問(wèn)都不一樣,比如用戶(hù)信息等。不過(guò),動(dòng)態(tài)資源如果也想被緩存加速,就要使用動(dòng)態(tài) CDN,其中一種方式就是將數(shù)據(jù)的邏輯計(jì)算放在 CDN 節(jié)點(diǎn)來(lái)做,這種方式就被稱(chēng)為邊緣計(jì)算。
CDN 是怎么從源服務(wù)器獲取資源的呢?
CDN 加速策略有兩種方式,分別是「推模式」和「拉模式」。大部分 CDN 加速策略采用的是「拉模式」,當(dāng)用戶(hù)就近訪(fǎng)問(wèn)的 CDN 節(jié)點(diǎn)沒(méi)有緩存請(qǐng)求的數(shù)據(jù)時(shí),CDN 會(huì)主動(dòng)從源服務(wù)器下載數(shù)據(jù),并更新到這個(gè) CDN 節(jié)點(diǎn)的緩存中??梢钥闯?,拉模式屬于被動(dòng)緩存的方式,與之相反的 「推模式」就屬于主動(dòng)緩存的方式。如果想要把資源在還沒(méi)有用戶(hù)訪(fǎng)問(wèn)前緩存到 CDN 節(jié)點(diǎn),則可以采用「推模式」,這種方式也叫 CDN 預(yù)熱。通過(guò) CDN 服務(wù)提供的 API 接口,把需要預(yù)熱的資源地址和需要預(yù)熱的區(qū)域等信息提交上去,CDN 收到后,就會(huì)觸發(fā)這些區(qū)域的 CDN 節(jié)點(diǎn)進(jìn)行回源來(lái)實(shí)現(xiàn)資源預(yù)熱。

如何找到離用戶(hù)最近的 CDN 節(jié)點(diǎn) ?

找到離用戶(hù)最近的 CDN 節(jié)點(diǎn)是由 CDN 的全局負(fù)載均衡器(Global Sever Load Balance,GSLB負(fù)責(zé)的。那 GSLB 是在什么時(shí)候起作用的呢?在回答這個(gè)問(wèn)題前,我們先來(lái)看看在沒(méi)有 CDN 的情況下,訪(fǎng)問(wèn)域名時(shí)發(fā)生的事情。在沒(méi)有 CDN 的情況下,當(dāng)我們?cè)L問(wèn)域名時(shí),DNS 服務(wù)器最終會(huì)返回源服務(wù)器的地址。比如,當(dāng)我們?cè)跒g覽器輸入 www.xiaolin.com 域名后,在本地 host 文件找不到域名時(shí),客戶(hù)端就會(huì)訪(fǎng)問(wèn)本地 DNS 服務(wù)器。這時(shí)候:
  • 如果本地 DNS 服務(wù)器有緩存該網(wǎng)站的地址,則直接返回網(wǎng)站的地址;

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

但加入 CDN 后就不一樣了。會(huì)在 xiaolin.com 這個(gè) DNS 服務(wù)器上,設(shè)置一個(gè) CNAME 別名,指向另外一個(gè)域名 www.xiaolin.cdn.com,返回給本地 DNS 服務(wù)器。接著繼續(xù)解析該域名,這個(gè)時(shí)候訪(fǎng)問(wèn)的就是 xiaolin.cdn.com 這臺(tái) CDN 專(zhuān)用的 DNS 服務(wù)器,在這個(gè)服務(wù)器上,又會(huì)設(shè)置一個(gè) CNAME,指向另外一個(gè)域名,這次指向的就是 CDN 的 GSLB。接著,本地 DNS 服務(wù)器去請(qǐng)求 CDN 的 GSLB 的域名,GSLB 就會(huì)為用戶(hù)選擇一臺(tái)合適的 CDN 節(jié)點(diǎn)提供服務(wù),選擇的依據(jù)主要有以下幾點(diǎn):
  • 看用戶(hù)的 IP 地址,查表得知地理位置,找相對(duì)最近的 CDN 節(jié)點(diǎn);

  • 看用戶(hù)所在的運(yùn)營(yíng)商網(wǎng)絡(luò),找相同網(wǎng)絡(luò)的 CDN 節(jié)點(diǎn);

  • 看用戶(hù)請(qǐng)求 URL,判斷哪一臺(tái)服務(wù)器上有用戶(hù)所請(qǐng)求的資源;

  • 查詢(xún) CDN 節(jié)點(diǎn)的負(fù)載情況,找負(fù)載較輕的節(jié)點(diǎn);

GSLB 會(huì)基于以上的條件進(jìn)行綜合分析后,找出一臺(tái)最合適的 CDN 節(jié)點(diǎn),并返回該 CDN 節(jié)點(diǎn)的 IP 地址給本地 DNS 服務(wù)器,然后本地 DNS 服務(wù)器緩存該 IP 地址,并將 IP 返回給客戶(hù)端,客戶(hù)端去訪(fǎng)問(wèn)這個(gè) CDN 節(jié)點(diǎn),下載資源。這次就說(shuō)到這啦,我們下次見(jiàn)!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉