電路中的組件可以以各種方式連接,最簡單的兩種連接方法就是串聯(lián)和并聯(lián)。串聯(lián)電路中的組件,如電阻器和電容器,是按照一條路徑連接的。在這種電路中,電流會流經(jīng)每個組件,電阻和電壓是累加的。一個電路有3個電阻器,另一個電路有3個電池圖中還標(biāo)示出所產(chǎn)生的電阻和電壓。如果任何一個組件出了故障,如一個電阻熔斷,那么整個電路都會出故障。
展示的是兩個并聯(lián)電路,上面的那個電路有3個電阻(和個電壓電源或電容器),下面的電路有3個電池。總電阻是每個電阻的倒數(shù)之和的倒數(shù)。根據(jù)定義,總電阻一定小于最小的電阻。此外還要注意,電壓并未改變,且電池只供應(yīng)一部分電流,從而延長了它們的使用壽命。注意,在這種電路中,一個組件出了故障并不會引發(fā)整個電路的故障。
系統(tǒng)架構(gòu)和電路有許多相似之處。服務(wù)器和網(wǎng)絡(luò)設(shè)備就是組件。系統(tǒng)中有的組件是Web服務(wù)器,有些是應(yīng)用服務(wù)器,有些是負(fù)率載均衡器,還有可能會是數(shù)據(jù)庫服務(wù)器。這些組件都可以并聯(lián)連接,也可以串聯(lián)連接。一個簡單的例子就是具有很大流量的靜態(tài)站點(diǎn)。你可以用10個Web服務(wù)器放置同一個靜態(tài)站點(diǎn)來提供流量。也可以使用一個負(fù)載均衡器來定向流量,或分配10個獨(dú)立的P地址,通過DNS與你的域關(guān)聯(lián)在一起。這些Web服務(wù)器是以并聯(lián)方式連接的,就像圖9-3中的電池。一臺Web服務(wù)器需要處理的流量只是總量的一小部分,如果一臺服務(wù)器出現(xiàn)了故障,整個站點(diǎn)仍是可用的,因為還有其他9臺Web服務(wù)器。
作為一個更典型的串聯(lián)架構(gòu)的例子,讓我們來添加一些層。一個標(biāo)準(zhǔn)的三層站點(diǎn),有一臺Web服務(wù)器、一臺應(yīng)用服務(wù)器和一臺數(shù)據(jù)庫服務(wù)器,我們用一個架構(gòu)把它們串聯(lián)起來。為了完成一個請求,Web服務(wù)器必須先接受它,然后把它傳遞給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器再査詢數(shù)據(jù)庫。然后應(yīng)用服務(wù)器接收返回的數(shù)據(jù)據(jù),對數(shù)據(jù)進(jìn)行操作,再將結(jié)果發(fā)回Web服務(wù)器,最終由Web服務(wù)器滿足客戶的請求。如果該電路或架構(gòu)中的任何組件壞了,整個系統(tǒng)都會中斷工作。
這把我們帶回了現(xiàn)實世界中的架構(gòu)。幾乎總會有要求把系統(tǒng)組件串聯(lián)連接在一起。在你考慮到負(fù)載均衡器、Web和應(yīng)用層、數(shù)據(jù)庫、存儲系統(tǒng)等時,要保持系統(tǒng)運(yùn)行就需要許多組件。當(dāng)然,以并聯(lián)方式添加組件,即使各個層是以串聯(lián)方式連接的,也有助于減少由一個組件出故障而導(dǎo)致整個系統(tǒng)出故障的風(fēng)險。把流量分配到多臺web服務(wù)器上,這樣如果只有一臺Web服務(wù)器出故障了,也不會導(dǎo)致整個系統(tǒng)出故障。在Web和應(yīng)用層,許多人承認(rèn)這一理念。而在數(shù)據(jù)庫和網(wǎng)絡(luò)層,許多人則會忽視這個問題。如果Web和應(yīng)用服務(wù)器都是以并聯(lián)方式連接的,但它們卻都要串聯(lián)到一個數(shù)據(jù)庫上,那么這一個組件就會造成災(zāi)難性的故障。
至于網(wǎng)絡(luò)組件,我們常常能看到一些架構(gòu)很注意以并聯(lián)方式連接服務(wù)器,但完全忽略了網(wǎng)絡(luò)設(shè)備,尤其是防火墻。防火墻在網(wǎng)絡(luò)中是很常見的,關(guān)于防火墻的討論。在這種情況下,流量要先經(jīng)過防火墻,然后再經(jīng)過負(fù)載均衡器、防火墻、交換機(jī),隨后到達(dá)Web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器,最后再原路返回。至少要經(jīng)歷7種組件各兩次。如果經(jīng)過了6個組件,再加一個組件,又有什么大不了呢?
串聯(lián)的組件會使故障風(fēng)險成倍增加。一個簡單的例子是,如果我們有兩臺串聯(lián)的服務(wù)器,每臺有9.9%的可用性或正常運(yùn)行時間,那么系統(tǒng)的總可用性就會小于99.9%×99.9%=99.8%6。如果我們以串聯(lián)方式加入第三個組件,同樣,我們得到的可用性會更低,即99.9%×99.9%×99.9%0=99.7%0。以串聯(lián)方式加入系統(tǒng)的組件越多,系統(tǒng)的可用性越低。表94列出了一些簡單的計算,可以看出,隨著可用性降低,每月停機(jī)的時間會增加。以串聯(lián)方式每向系統(tǒng)加入一個組件(可用性為99.9%),每月的停機(jī)時間就會增加約43分鐘。
像當(dāng)今大多數(shù)電路一樣,你的網(wǎng)站建設(shè)系統(tǒng)也比簡單的串聯(lián)或并列許接多了,因此,要精確預(yù)計可用性,比我們這個簡單的例子要復(fù)雜多了。你能了解到串聯(lián)的組件會大大提高系統(tǒng)停機(jī)的風(fēng)險。當(dāng)然,減少串聯(lián)的組件,或者并聯(lián)地添加這些組件的多個版本,就可以減少這種風(fēng)險。
本文地址:http://m.knowyourextract.com//article/3514.html