日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

简单cdn之二

發(fā)布時(shí)間:2025/7/14 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单cdn之二 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />作者:田逸(sery@163.com) 7.1.4 cdn的基本原理<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

?

Cdn的基本原理可概括為:內(nèi)容緩存、就近訪問以及以dns視圖方式根據(jù)用戶來源確定其訪問位置。

?

???? 內(nèi)容緩存:緩存服務(wù)器從源站取得所需數(shù)據(jù),然后暫存在本地的硬盤或內(nèi)存。使用這種緩存機(jī)制的好處是:(1)內(nèi)容自動更新;(2)無多個(gè)服務(wù)器數(shù)據(jù)相互同步問題。 ???? 就近訪問:讓用戶的訪問請求轉(zhuǎn)向到離用戶最近或最易于訪問的緩存服務(wù)器。 ???? dns視圖方式根據(jù)用戶來源確定其訪問位置:即讓電信的用戶訪問電信的緩存服務(wù)器,網(wǎng)通用戶訪問網(wǎng)通的緩存服務(wù)器。

?

7.1.5 什么是簡單cdn

?

簡單cdn這個(gè)概念,是相對于復(fù)雜cdn來定義的。因此,我們先來了解一下什么是復(fù)雜的cdn

?

籠統(tǒng)一點(diǎn)的講,cdn服務(wù)提供商所運(yùn)營的環(huán)境,就是復(fù)雜cdn。就緩存服務(wù)器而言,其結(jié)構(gòu)是分層次的,一般可劃分成核心節(jié)點(diǎn)和邊緣節(jié)點(diǎn)。并且同一層級的相鄰節(jié)點(diǎn)之間又可形成姐妹關(guān)系,亦即在同一個(gè)集群下的節(jié)點(diǎn)互為姐妹關(guān)系。為了保證最高的性能能和效率,不建議跨網(wǎng)或跨物理范圍的節(jié)點(diǎn)形成姐妹關(guān)系。為了更直觀的理解這個(gè)結(jié)構(gòu)和由此產(chǎn)生的好處,我在這里以一個(gè)最長訪問路徑的圖示來說明: <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 7-2 緩存服務(wù)器相互關(guān)系

1、? 用戶向某邊緣服務(wù)器(邊緣A)發(fā)起訪問請求,所需內(nèi)容沒有被緩存。 2、? 邊緣服務(wù)器(邊緣A)于是詢問其鄰居,是否緩存了用戶所需的請求對象,鄰居節(jié)點(diǎn)也沒有緩存所需的對象。 3、? 邊緣服務(wù)器(邊緣A)轉(zhuǎn)而向某個(gè)父節(jié)點(diǎn)(核心A)請求文件,如果該父節(jié)點(diǎn)仍然無所需的文件,則該父節(jié)點(diǎn)詢問其鄰居;如果鄰居也沒有所需的文件,則把請求轉(zhuǎn)給源站。 4、? 源站返回?cái)?shù)據(jù)給核心節(jié)點(diǎn)(核心A),并緩存數(shù)據(jù)在該節(jié)點(diǎn)。 5、? 核心節(jié)點(diǎn)(核心A)返還數(shù)據(jù)給邊緣節(jié)點(diǎn)(邊緣A),并緩存數(shù)據(jù)在該節(jié)點(diǎn)。 6、? 邊緣節(jié)點(diǎn)返還數(shù)據(jù)給用戶,一次最長路徑的訪問完成。 這種分層次的機(jī)制,既能保證最高的可用性,又能最大限度的減少向上一級節(jié)點(diǎn)的網(wǎng)絡(luò)流量。

?

除了緩存服務(wù)器結(jié)構(gòu)上的差異外,復(fù)雜cdn還具備以下一些特性: (1)?????? 緩存服務(wù)器布點(diǎn)范圍廣,服務(wù)器數(shù)量龐大。 (2)?????? 復(fù)雜的日志處理系統(tǒng)。因?yàn)橛?jì)費(fèi)依賴于訪問日志。 (3)?????? 詳細(xì)的視圖劃分。例如精確到每個(gè)省的ip地址段。 (4)?????? 預(yù)加載機(jī)制。

?

當(dāng)我們了解清楚復(fù)雜cdn以后,再來了解簡單cdn就容易多了。所謂簡單cdn,就是節(jié)點(diǎn)層次簡單、服務(wù)器數(shù)量有限、能實(shí)現(xiàn)有限規(guī)模站點(diǎn)加速和發(fā)布的平臺。通常情況下,我們不必為實(shí)現(xiàn)cdn帶來的好處而部署復(fù)雜的cdn系統(tǒng),這將花費(fèi)巨大的人力物力。把復(fù)雜的cdn簡化,使之符合我們的業(yè)務(wù)需求,是本章“簡單cdn”撰寫的用意所在。

?

?

7.2簡單cdn設(shè)計(jì)

?

先申明一下,本文所設(shè)計(jì)的簡單cdn只是一個(gè)樣例,并非適用于所有的場景。讀者可根據(jù)我的思路,設(shè)計(jì)出更適合自己應(yīng)用環(huán)境的簡單cdn

?

7.2.1 簡單cdn設(shè)計(jì)的基本原則

?

簡單cdn設(shè)計(jì)主要考慮以下幾點(diǎn):

(1)?????? 選點(diǎn)合理,能覆蓋大部分網(wǎng)絡(luò)用戶。最起碼得在電信和網(wǎng)通機(jī)房放置緩存服務(wù)器,如果經(jīng)費(fèi)充裕,把教育網(wǎng)也考慮進(jìn)來。

(2)?????? 系統(tǒng)本身具備很好的高可用特性。用戶的訪問主要集中在緩存服務(wù)器,緩存服務(wù)器之間使用集群技術(shù)就能得到比較高的系統(tǒng)可用性。

(3)?????? 核算自建簡單cdn的成本,使之有較好的性價(jià)比。如果自建一個(gè)cdn遠(yuǎn)比購買cdn服務(wù)商所花費(fèi)的資金還高(目前國內(nèi)商用cdn每兆帶寬為50/月,基數(shù)是1G),基本上沒必要自己建立cdn了。

(4)?????? 系統(tǒng)應(yīng)該具備很好的伸縮能力,以適應(yīng)各種業(yè)務(wù)變化。如增加布點(diǎn)、增加設(shè)備、增加站點(diǎn)等等。

?

7.2.2 需求描述

?

欲對三個(gè)web服務(wù)進(jìn)行加速,為了描述方便,使用域名來進(jìn)行說明。這三個(gè)加速站點(diǎn)為圖片站點(diǎn) images.sery.cn、下載站點(diǎn)dl.sery.cn、主站 www.sery.cn3個(gè)站點(diǎn)全部是靜態(tài)內(nèi)容,其頁面文件主要是.html(htm).execssjpegjs等,非常適合被緩存。

?

服務(wù)的主要目標(biāo)用戶包括電信線路的用戶、網(wǎng)通線路的用戶、教育網(wǎng)的用戶,其他線路的用戶(如科技網(wǎng)、長城寬帶等)訪問請求被轉(zhuǎn)向到網(wǎng)通線路的緩存服務(wù)器。為了實(shí)現(xiàn)這個(gè)目標(biāo),我們可能需要放置4組服務(wù)器來做緩存,即電信一組,網(wǎng)通2組,教育網(wǎng)一組。

?

7.2.3 簡單cdn設(shè)計(jì)

?

需求明確之后,接下來的設(shè)計(jì)工作包括:布點(diǎn)選擇、工具選取、cdn結(jié)構(gòu)設(shè)計(jì)等幾部分。

?

???? 布點(diǎn)選取

布點(diǎn)包括源站、全局智能dns、緩存服務(wù)器集群。

(1)?????? 源站及全局智能dns選擇互聯(lián)互通性較好的第三方bgp機(jī)房;因?yàn)槭褂?/span>cdn服務(wù)的站點(diǎn)數(shù)量有限,故在緩存服務(wù)器以主機(jī)名的方式尋址源站。

(2)?????? 緩存服務(wù)器共4組,選擇二線或三線城市的機(jī)房托管,能節(jié)省大量的資金北京、上海等城市帶寬價(jià)格大概在300~400//月,而偏遠(yuǎn)一點(diǎn)二三線城市(如安陽)1G帶寬的年總費(fèi)用才8-10萬。

?

???? 工具選取

工具包括操作系統(tǒng)、dns軟件、緩存服務(wù)器軟件、負(fù)載均衡軟件、源站軟件以及定制的腳本。 (1)?????? 所有的服務(wù)器均使用32位的centos 5.x。曾經(jīng)使用過64位的系統(tǒng),但在執(zhí)行緩存服務(wù)器的緩存清理操作時(shí),有些小問題。 (2)?????? Dns使用bind-9.4.0。低于9的版本,可能不支持視圖view,沒有視圖功能,智能dns就無法實(shí)現(xiàn)。不知道其他的dns軟件有沒有支持視圖view的,愿知者告知。 (3)?????? 緩存服務(wù)器有兩種選擇,一種是squid,另一種是varnishSquid多用在復(fù)雜cdn場景,它能實(shí)現(xiàn)緩存服務(wù)器間的層級關(guān)系(鄰居形成姊妹、邊緣節(jié)點(diǎn)與核心節(jié)點(diǎn)形成父子關(guān)系),功能強(qiáng)大而配置復(fù)雜;Varnish為后起之秀,配置簡單而性能卓越,維護(hù)起來比較簡單,因此本案選擇varnish作為緩存工具【注1 (4)?????? 負(fù)載均衡由ipvsadmkeepalived兩部分組成。ipvsadm是核心,負(fù)責(zé)包轉(zhuǎn)發(fā)和負(fù)載分?jǐn)?#xff1b;keepalived為框架,負(fù)責(zé)故障隔離和失敗切換failover (5)?????? 可做web服務(wù)的軟件比較多,因?yàn)檎军c(diǎn)為簡單的靜態(tài)文件,選擇nginx比較省事。 (6)?????? 定制腳本主要目的是自動刷新緩存服務(wù),把這個(gè)腳本放在摸個(gè)服務(wù)器上,只需執(zhí)行一次(也可使用crontab自動調(diào)用)就能實(shí)現(xiàn)所有緩存服務(wù)器的緩存清理。

?

???? cdn結(jié)構(gòu)設(shè)計(jì)

?

我們可根據(jù)cdn的角色來設(shè)計(jì)整個(gè)結(jié)構(gòu),這些角色包括:源站、智能dns及緩存服務(wù)器3大部分,根據(jù)布點(diǎn)選擇和其他因素綜合考慮,我們可繪出整個(gè)cdn的布局結(jié)構(gòu)圖。

7-3 cdn服務(wù)器布局

從圖中可以看出有2組緩存服務(wù)器放置在網(wǎng)通機(jī)房,這兩組服務(wù)器不在同一個(gè)物理位置,這樣做主要目的是:bind規(guī)劃視圖view時(shí),能收集到的地址比較有限,不在收集列表的其他ip地址段,則統(tǒng)統(tǒng)轉(zhuǎn)發(fā)給網(wǎng)通B機(jī)房的服務(wù)器;另外網(wǎng)通B機(jī)房的帶寬比較便宜,機(jī)器數(shù)量也比較多,跟其他網(wǎng)段的互聯(lián)互通還可以。

?

(1)?????? 源站

源站為內(nèi)容的原始發(fā)布,盡管采用cdn技術(shù)以后源站的負(fù)荷會變得很小,但為了有較高的可用性,可把它部署成負(fù)載均衡集群。

?

2)智能dns

智能dns是用來實(shí)現(xiàn)用戶訪問轉(zhuǎn)向功能,即通過建立訪問列表,判斷用戶的訪問來源,確定其訪問對象的位置。在本案中,我建立電信、網(wǎng)通、教育網(wǎng)三個(gè)ip地址列表,未在這三個(gè)列表的稱為其他;每個(gè)列表關(guān)聯(lián)一個(gè)bind的視圖view,那么一共就有4個(gè)視圖view。地址列表可以自己收集,也可以花錢購買,地址列表越大,dns定向準(zhǔn)確性越高。在這里強(qiáng)調(diào)一下:ip地址列表為客戶dns服務(wù)器所在網(wǎng)段的列表,而不是用戶接入網(wǎng)絡(luò)的ip段。客戶端計(jì)算機(jī)所設(shè)定的dns,通常稱為用戶本地dns。同樣,為了使其有較高的可用性,dns采用主從同步的架構(gòu)。 ? 以下內(nèi)容省略. 簡單Cdn實(shí)現(xiàn) 簡單cdn功能測試 簡單Cdn監(jiān)控 簡單cdn維護(hù) 其他

總結(jié)

以上是生活随笔為你收集整理的简单cdn之二的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。