CDN是啥?

參考:

閒話 CDN:https://zhuanlan.zhihu.com/p/39028766

CDN是什麼?使用CDN有什麼優勢?https://www.zhihu.com/question/36514327?rf=37353035

---------------------------分界線------------------------------------------

        舉例:某大學內很多學生都在追《慶餘年》,都想看4K畫質的視頻,但假設學校的帶寬不足以支持這些學生看4K畫質的視頻,這時候可以使用學校內的緩存設備,把學生們愛看的熱門視頻都緩存,如果有學生請求看某視頻,先在學校內的存儲設備中檢索,如果檢索不到再向互聯網請求資源。假設大多學生愛看的視頻學校緩存服務器中都有,而且每個學校都設置站點,那每個學校的學生都可以以很高的網速觀看視頻,不用佔用訪問外網的帶寬,同時目標網站的的服務器壓力也小的多。所以CDN的本質時緩存,是共享。

        從上例子可以看出,CDN主要功能是在不同的地點緩存內容,通過負載均衡技術,將用戶的請求定向到最合適的緩存服務器上去獲取內容,比如說,是北京的用戶,我們讓他訪問北京的節點,深圳的用戶,我們讓他訪問深圳的節點。通過就近訪問,加速用戶對網站的訪問。解決Internet網絡擁堵狀況,提高用戶訪問網絡的響應速度。

        CDN工作原理:通過權威DNS服務器來實現最優節點的選擇,通過緩存來減少源站的壓力。與傳統訪問方式不同,CDN網絡則是在用戶和服務器之間增加緩存層,將用戶的訪問請求引導到最優的緩存節點而不是服務器源站點,從而加速訪問速度。如下圖所示。

                                傳統訪問                                                                    CDN

            

        CDN模型如下圖。首先我們在地址欄鍵入一個網址,瀏覽器發現本地沒有關於這個網址的 DNS 緩存,所以向網站的 DNS 服務器發起請求。網站的 DNS 服務器設置了 CNAME,指向了某個 CDN 服務器,也就是我們常見的阿里雲、騰訊雲、Cloudflare 之類的,去請求 CDN 中的智能 DNS 均衡負載系統。均衡負載系統解析域名,把對用戶響應最快的節點返回給用戶,然後用戶向該節點發出請求。如果是第一次訪問該內容,CDN 服務器會向源站請求數據並緩存,否則的話,直接在緩存節點中找到該數據,將請求結果發給用戶。對於最簡單的 CDN 系統而言,只要一臺 DNS 調度服務器和一個節點服務器即可,但在複雜的應用中,會存在多級緩存,多臺 Cache 來協同工作。

                                   

        

總結

CDN 這個東西本質就是一個緩存,只是這個緩存離你特別特別的近,作爲用戶還是開發都能從中享受到一點福利,但作爲一個服務於企業的開發人員,不僅要考慮 CDN 的優點,也要知道 CDN 給我們帶來的坑,這樣才能靠譜的作爲 CDN 的使用者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章