隨著近年直播、視頻、游戲、電商等大流量業務的高速增長,傳統CDN也面對著與日俱增的進化壓力,除了最開始的“引導”、“最近鄰”等基礎功能,“高可用”及“智能化”也成為了CDN加速亟待優化的問題。
今天三方將為您比較CDN的兩種調度方式:傳統CDN調度與基于HTTP協議的CDN調度。
一、傳統CDN調度
1 基于DNS解析的調度
傳統的CDN方案借助于DNS解析來進行調度,使用LocalDNS出口地址作為查詢IP,根據查詢IP對用戶進行地域調度,但獲取的可能不是用戶真實的所在地址。按照錯誤的地址進行CDN調度,明顯違背了CDN服務“引導”“臨近”的初衷。
2 基于故障切換的調度
一套完備的CDN系統都會具備邊緣服務節點故障切換機制,且同時滿足人工切換和自動切換的要求。但無論何種故障切換,總歸是產生故障后的補救措施,會造成CDN加速的服務質量波動,大大影響了CDN“可用”的服務重點。
3 基于邊緣服務節點輪詢的調度
CDN服務商通過架設權威DNS服務器,將某個域名在各個區域的對應邊緣cache服務節點A記錄集合提供給LocalDNS解析查詢和緩存。
A記錄集合最多可為13個,LocalDNS再從13個A記錄里通過輪詢挑選提供給URL訪問用戶,又或者全部提供給互聯網的用戶客戶端,由客戶端自行挑選。
這樣的輪詢機制帶來的問題是:如果同一份互聯網資源在每個服務節點都存儲一份,那么有可能需要到源站進行13次緩存獲取。
由此對互聯網企業源站所造成的訪問壓力,帶寬成本,以及隨之出現的糟糕用戶體驗,也是需要CDN服務提供商考慮的地方。
二、基于HTTP的CDN調度
內容分發網絡的HTTP調度系統,包括決策中心服務器、一個或多個調度中心服務器以及一個或多個邊緣調度Cache服務器。
決策中心獲取全局的服務器集群帶寬和負載情況,統一決策全局生成決策策略。
調度中心執行中心決策策略,與用戶客戶端直接建立連接,在收到客戶端內容請求時,根據客戶端所在的實際地理位置及請求內容,精準匹配首選服務器集群,讓客戶端通過302跳轉訪問,獲取緩存內容,實現CDN加速服務。
HTTP調度系統相對傳統CDN加速服務有以下幾方面特點:
1 基于HTTP協議調度
客戶端與服務器雙方通過HTTP協議直聯,客戶端請求全部被引導至調度中心服務器。
調度中心服務器從客戶端的請求中獲取互聯網用戶的公網IP,以此作為CDN調度選取邊緣cache服務節點的基準,能夠精準無誤的“引導”請求到真實“臨近”的最優邊緣服務節點。
2 基于帶寬、負載的調度
HTTP調度系統決策中心依賴CDN網絡的節點采集系統來獲取CDN系統全網服務節點的實時帶寬信息,以及集群的實時健康系數,作為負載數據。
決策中心統籌全網負載數據,通過優秀的決策算法快速演算得出決策策略,第一時間將決策策略提供給調度中心執行。
決策中心可以及時對全網中負載較高的邊緣cache服務節點進行流量牽引以及執行備選服務集群,提前防范負載高的服務節點硬抗流量導致故障宕機,確保了CDN服務的高可用。
3 基于邊緣服務節點精準調度
調度中心依托決策中心的決策策略,通過精準算法能對每份互聯網資源進行唯一的演算,確定唯一邊緣cache服務節點提供CDN加速服務。從而避免一份互聯網資源在邊緣cache服務節點的多份緩存,減少“從源服務器上緩存”給互聯網企業源站帶來的壓力和成本開銷。
三、傳統CDN調度 vs 基于HTTP調度
從以上分析可以看出,相對于傳統的DNS解析調度,HTTP協議調度能夠根據互聯網用戶的真實IP地址將其請求引導到臨近的邊緣cache服務節點,實現絕對有效的CDN加速。
同時,由于HTTP服務器即調度中心服務器與用戶端直接建立了連接,能夠做到單機級別的精準調度,并實時根據當前帶寬信息與集群負載狀況,做出決策調度調整,大大提高CDN加速服務的質量與客戶滿意度。
再者,HTTP服務器的靈活性讓其能夠輕松實現互聯網加速需求企業對于不同加速資源的個性化加速策略,這也是傳統DNS調度所無法比擬的。
雖然目前基于HTTP的CDN調度仍不完美,但它有著更加廣闊的使用場景,有極大的可能會在企業內部替代掉傳統的DNS調度,實現更佳的CDN加速方案,讓互聯網用戶得到更流暢的上網體驗。