天天看點

QunarCache的應用

作者:閃念基因

一、CDN

1

什麼是 CDN

CDN(content delivery network)全稱是内容分發網絡。

Internet 超級快遞員(圖檔、文本、音樂、電影、消費訂單、微網誌。。。)

QunarCache的應用

2

CDN 的作用

1、防禦入侵,抵禦攻擊,保證服務品質

2、使用者體驗(控制時延)

CDN 就是盡可能的減少資源在轉發、傳輸、鍊路抖動等情況下通路時延,確定使用者快速準确的通路效果。

3、省時、省力、省錢

二、QunarCache(CDN+Cache)

大家都知道 CDN 其實就是架在使用者身邊的一層代理,真正提供服務的是最終通路到的源站。

那如何來預防 CDN 崩潰導緻的大流量回源呢?

1

CDN++

1、多家 CDN 實作資源多節點、多備份、多保障

2、通過智能 DNS 實作不同營運商的 DNS 解析控制,保證通路分流到各家待配置設定的 CDN

3、多家之間對比服務(服務品質、售後、價格等等)

QunarCache的應用

2

CDN + Cache

1、CDN 後面增加一層自建 Cache,保證源站的安全

2、多區域部署,實作專屬線路的網絡優勢和保護

QunarCache的應用

三、QunarCache 的效果

這樣的架構到底為我們實作了怎麼樣的保護呢?

一家 CDN 挂掉導緻大流量湧入我們的 Cache 叢集,Cache 逐漸增長的壓力正在消化這部分突發流量,而保護了我們的源站免于突發和大流量帶來的壓力。

QunarCache的應用

1

Cache 的選型

Squid、Varnish、ATS(Apache Traffic Server)、Nginx

名稱 江湖地位 所屬門派 江湖威望
Squid 曆史悠久,成熟,老套 資源量較大,并發不高 3星:技術成熟專業,多執行個體實作
Varnish 初出茅廬知天下三分 熱點集中,緩存總量不大 2星:性能高,但不适合我們
ATS 異族高手,高深莫測 全能 2星:功能強大,性能好,維護成本高,有點難
Nginx 十全大補丹,劍走偏鋒 全能 2星:不夠成熟,維護成本較高

按需而行

1、我們的資源總量大、熱點不集中、緩存更新頻繁......

2、選型 Nginx + Squid

QunarCache的應用

四、QunarCache 成長

1

Nginx + Squid Sliblings

該模式有效的達到記憶體的的橫向擴充,避免了資源重複消耗及緩存資料的查詢時間,但隻适合小叢集。

QunarCache的應用

2

Nginx UriHash + Squid

該模式即轉嫁了 Cache 的查詢壓力,又實作了 Cache 容量的橫向擴充,随着我們的叢集擴大,逐漸取代原有的模式。

相比原有模式,該結構起到的作用。

QunarCache的應用

3

Nginx UriHash + Squid 多程序

用過 Squid 的同學都知道,Squid 雖然優點很多,但卻是個性能短版的單程序服務,是以我們在原有基礎上通過增加 Squid 程序來實作性能的提升。

那性能上有多大的提升呢?

QunarCache的應用

五、QunarCache 的運維

1

三方檢測,提升 QunarCache 的服務體驗

了解使用者的通路體驗(最後的一公裡)

監控 QunarCache 的服務狀況

QunarCache的應用

2

區分業務,多叢集獨立服務管理

需求不同,側重點區分

充分利用現有硬體資源

QunarCache的應用

3

Saltstack 實作服務上下線

區分叢集和基礎硬體的差異

統一操作實作快速部署

六、QunarCache 改進方向

1

資料時代

收集 CDN 日志,并進一步分析

● 通路效果

● 性能資料監控

● 取樣報警

2

自助切換

完善 CDN 通路監控,結合 QunarDNS 實作自助故障切換

作者:段凱

來源-微信公衆号:Qunar技術沙龍

出處:https://mp.weixin.qq.com/s/bWR0RzeRt5uVUr4taBWSUA