享學課堂特邀做者:老顧web
轉載請聲明出處!redis
不少文章就介紹太高併發,秒殺等流量大的解決方案,提到過緩存redis,消息中間件等,今天老顧介紹一下另外一個重要的知識點,這就是一直隱姓埋名的 CDN 了,注意不是 CSDN,而是 CDN!其全稱是 Content Delivery Network,即內容分發網絡。數據庫
用戶訪問咱們的系統,會經歷網絡傳輸,會消耗時間;咱們來看看哪些地方決定了耗時。瀏覽器
網站服務器接入互聯網的網絡帶寬,這個帶寬決定了能爲請求提供的訪問速度和併發訪問量。緩存
互聯網的長途傳輸要道,出沒於IDC、骨幹網、城域網、接入網等,會出現「時延」和「擁塞」。服務器
互聯網覆蓋四大運營商,各運營商的網絡獨立運營,各個運營商之間的互聯帶寬成爲瓶頸。網絡
用戶電腦接入的網絡,也被分爲不一樣的接入方式ADSL或FTTX等,以及帶寬;不一樣的方式帶寬,不一樣費用。架構
根據研究發現:當人們得到網絡信息時,好感度隨時間流逝降低的最爲迅速。併發
0.1 s:用戶幾乎感受不到系統是否不連貫性。負載均衡
1.0 s:用戶明顯注意到時延的發生,可是在該時間內思惟依然是連貫的。
10 s:超過該時間的時延會使用戶失去等待意願。
控制時延無疑是現代信息科技的重要指標。
在通常的系統中,用戶訪問一個網頁,網頁裏面包含圖片,CSS,JS等靜態內容,以及一些動態的數據信息。設計的比較好點系統都會作到動靜分離。
用戶流量一旦大了以後,靜態資源服務器的壓力也是很是大的,這些資源的特色是不會常常改變。通常涉及到不會改變的資源,咱們能想到的就是用緩存技術提升系統吞吐量,抗壓。
用戶時延的體驗感,是每一個系統都要考慮的。集合上面的需求,在整個體系架構中,就引入了CDN這個技術。
CDN的意圖就是儘量的減小資源在轉發、傳輸、鏈路抖動等狀況下順利保障信息的連貫性。 解決因分佈、帶寬、服務器性能帶來的訪問延遲問題,適用於站點加速、點播、直播等場景。使用戶可就近取得所需內容,解決 Internet網絡擁擠的情況,提升用戶訪問網站的響應速度和成功率。
上圖的主要流程以下:
1.用戶向瀏覽器輸入www.web.com這個域名,瀏覽器第一次發現本地沒有dns緩存,則向網站的DNS服務器請求;
2.網站的DNS域名解析器設置了CNAME,指向了www.web.cdn.com(即請求指向了CDN網絡中的智能DNS負載均衡系統)
3.智能DNS負載均衡系統解析域名,把對用戶響應速度最快的IP節點返回給用戶;
4.用戶向該IP節點(CDN服務器)發出請求;
5.因爲是第一次訪問,CDN服務器會向源web站點請求數據,並緩存內容;
6.請求結果發給用戶。
核心技術點CNAME映射,上面流程的總結就是,用戶發起域名請求,DNS會選擇最近CDNS節點給用戶,直接從這個CDN節點上面獲取數據。
每一個CDN節點由兩部分組成:負載均衡設備和高速緩存服務器。
負載均衡設備負責每一個節點中各個Cache的負載均衡,保證節點的工做效率;同時負載均衡設備還負責收集節點與周圍環境的信息,保持與全局負載DNS的通訊,實現整個系統的負載均衡。
高速緩存服務器(Cache)負責存儲客戶網站的大量信息,就像一個靠近用戶的網站服務器同樣響應本地用戶的訪問請求。
CDN的管理系統是整個系統可以正常運轉的保證。它不只能對系統中的各個子系統和設備進行實時監控,對各類故障產生相應的告警,還能夠實時監測到系統中總的流量和各節點的流量,並保存在系統的數據庫中,使網管人員可以方便地進行進一步分析。
CDN的引入大大的提高了系統的吞吐量,以及用戶的體驗感;還起到了數據備份的做用。不過也會產生一些問題,尤爲是緩存信息,有時候常常會出現信息更新了,CDN節點的信息仍是舊數據。
這個就須要咱們小夥伴們要了解一些瀏覽器、代理服務器和源站點之間的緩存協議是什麼樣的,怎麼去控制緩存?
老顧下一篇會繼續介紹,謝謝!!!
你的贊和關注是我繼續創做的動力~