自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

自建CDN技術(shù)選型:Squid Varnish Nginx

運(yùn)維 系統(tǒng)運(yùn)維
CDN系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶的距離和響應(yīng)時(shí)間等綜合信息將用戶的請(qǐng)求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點(diǎn)上。其目的是使用戶可就近取得所需內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。本文總結(jié)了自建CDN技術(shù)選型那些事兒。

CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其基本思路是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母?、更穩(wěn)定。

使用CDN有3個(gè)好處

  • 優(yōu)化跨ISP網(wǎng)絡(luò)訪問速度,在國(guó)內(nèi)大聯(lián)通和大電信之間是世界上最遠(yuǎn)的距離,在國(guó)外,中國(guó)和其他地區(qū)很平行,用cdn可以優(yōu)化全球響應(yīng)速度
  • 節(jié)約流量成本,CDN機(jī)房都一般都放在帶寬便宜的小城市,帶寬成本大概是BGP機(jī)房的1/3
  • 快速提升性能,對(duì)于結(jié)構(gòu)復(fù)雜的系統(tǒng),部署CDN可以在不改動(dòng)代碼段情況提升網(wǎng)站整體性能,立竿見影

市面上有很多CDN供應(yīng)商,比較著名有:

  • Akamai (全球***)
  • chinacache
  • webluker
  • cloudflare
  • chinacache

如果需要自己搭建CDN系統(tǒng),有3種主流方案可以選擇

  1. squid
  2. varnish
  3. nginx+memcache

典型用戶

存儲(chǔ)共享

對(duì)于大規(guī)模網(wǎng)站的CDN,存儲(chǔ)共享是個(gè)強(qiáng)需求。為了消除單點(diǎn),不可能只使用一臺(tái)CDN服務(wù)器,如果只是簡(jiǎn)單做負(fù)載均衡,單臺(tái)CDN server 上需要存儲(chǔ)全部數(shù)據(jù),存儲(chǔ)利用率太低了

  • squid支持幾個(gè)實(shí)例并聯(lián),實(shí)際使用的人不多
  • varnish 只能用單實(shí)例
  • nginx+memcache 天然的分布式存儲(chǔ)

當(dāng)然,采用squid/varnish 也有解決辦法: 需要在它們前面部署一個(gè)支持url hash的負(fù)載均衡設(shè)備(硬件,軟件均可,比如說haproxy)

內(nèi)存存儲(chǔ)的代價(jià)

如果CDN把緩存放在內(nèi)存當(dāng)中,固然性能會(huì)有提升,但是當(dāng)服務(wù)遭遇故障重啟之后,全部數(shù)據(jù)都會(huì)丟失需要重建,這個(gè)時(shí)候

  1. 會(huì)給后端應(yīng)用服務(wù)器帶來很大的短時(shí)壓力
  2. 服務(wù)需要較長(zhǎng)的時(shí)間才能完全恢復(fù)

而實(shí)際運(yùn)行當(dāng)中,由于各種原因,CDN服務(wù)重啟的概率相當(dāng)高。

一個(gè)很悲劇的事實(shí)

對(duì)動(dòng)態(tài)網(wǎng)頁(yè)使用CDN,無論squid還是varnish都不能直接用,都需定制代碼。

例如 varnish 會(huì)判斷response的header,如果發(fā)現(xiàn)里面有set-cookie項(xiàng),它就認(rèn)為這個(gè)頁(yè)面不應(yīng)該被緩存。對(duì)于規(guī)模龐大/OOP封裝嚴(yán)密的網(wǎng)站,普通程序員根本意識(shí)不到調(diào)用哪一個(gè)fucntion會(huì)輸出set-cookie,這個(gè)會(huì)導(dǎo)致CDN命中率急劇降低。但你也無力去對(duì)每行代碼做code review,沒有辦法,只能去修改varnish代碼了,這又引入一個(gè)新的維護(hù)成本. Squid也有這個(gè)問題

purge效率

purge就是CDN刪除緩存項(xiàng)的接口,國(guó)內(nèi)的UGC網(wǎng)站,因?yàn)閲?yán)厲的內(nèi)容檢查制度和泛濫的垃圾廣告,刪帖子刪圖片特別頻繁,某些網(wǎng)站可能高達(dá)40%(發(fā)100個(gè)貼,有40個(gè)帖子可能被刪除或者修改),所以對(duì)purge的效率有要求。

squid和varnish purge效率都達(dá)不到國(guó)內(nèi)這種強(qiáng)度要求,nginx+memcache purge性能 要好很多

在當(dāng)前的中國(guó),遇到突發(fā)事件,你要不及時(shí)刪除指定的鏈接,你的老板就可能會(huì)去拍下面這種相片

[[72915]]

某門戶網(wǎng)站曾經(jīng)發(fā)生過,某個(gè)鏈接怎么也刪不掉,一慌張把CDN所有緩存都刪了重啟,導(dǎo)致內(nèi)網(wǎng)流量瞬間暴漲,各業(yè)務(wù)線的服務(wù)器全線報(bào)警,集體罵娘。

推薦CDN方案

  1. 中小型網(wǎng)站直接買服務(wù)就好,現(xiàn)在CDN已經(jīng)進(jìn)按需付費(fèi)的云計(jì)算模式了,性價(jià)比是可以準(zhǔn)確計(jì)算的
  2. 外地部署單點(diǎn),推薦用squid
  3. 準(zhǔn)備在公司內(nèi)部實(shí)施私有云戰(zhàn)略,推薦nginx+memcache

不建議使用varnish

以前的工作中,我力主把一個(gè)CDN集群從squid遷移到varnish,持續(xù)運(yùn)行了2年,就是如上感受,嚴(yán)重不推薦.

責(zé)任編輯:黃丹 來源: 博客
相關(guān)推薦

2012-04-02 17:46:08

緩存對(duì)比

2016-09-12 15:48:06

Nginxvarnish緩存

2014-12-30 15:37:39

DevOps聽云CDN

2015-03-27 09:52:06

騰訊CDN/CDN

2017-05-24 16:38:21

CDN融合自建

2020-06-17 15:44:47

技術(shù)研發(fā)架構(gòu)

2012-06-11 16:10:56

CDN互聯(lián)網(wǎng)

2012-02-13 16:00:35

內(nèi)網(wǎng)安全技術(shù)選型安全產(chǎn)品

2023-09-15 14:37:55

2012-11-05 10:33:40

IBMdw

2018-06-28 09:06:27

DNS技術(shù)CDN

2015-06-25 18:54:17

varnish降級(jí)系統(tǒng)

2012-04-02 14:25:12

squid緩存

2012-04-02 15:29:00

httpvarnish

2013-10-28 13:48:10

技術(shù)選型

2012-11-14 09:42:16

Pikacode技術(shù)選項(xiàng)項(xiàng)目

2022-05-06 15:38:21

鴻蒙App開發(fā)技術(shù)

2011-09-14 10:08:07

Beanstalkd

2019-12-12 10:58:37

Docker容器引擎

2024-09-03 13:59:37

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)