如何根據(jù)行業(yè)來選擇服務(wù)器配置?
對(duì)于企業(yè)來說網(wǎng)站是企業(yè)重要的門戶,然而不同企業(yè)對(duì)于網(wǎng)站服務(wù)器托管的方式會(huì)隨著企業(yè)的需求而變化。
一般來說,大型網(wǎng)站都是從小型網(wǎng)站發(fā)展而來,初始階段的網(wǎng)站架構(gòu)都比較簡(jiǎn)單,隨著業(yè)務(wù)復(fù)雜和用戶量的激增,才開始做很多架構(gòu)上的改進(jìn)。當(dāng)它還是小型網(wǎng)站的時(shí)候,沒有太多訪客,一般來講只需要一臺(tái)服務(wù)器就夠了,這時(shí)應(yīng)用程序、數(shù)據(jù)庫(kù)、文件等所有資源都在一臺(tái)服務(wù)器上。
但隨著網(wǎng)站業(yè)務(wù)的發(fā)展和用戶量的增加,一臺(tái)服務(wù)器就無法再滿足需求了。大量用戶訪問導(dǎo)致訪問速度越來越慢,而逐漸增加的數(shù)據(jù)也會(huì)導(dǎo)致存儲(chǔ)空間不足。這時(shí)就需要將應(yīng)用和數(shù)據(jù)分離,應(yīng)用和數(shù)據(jù)分離后整個(gè)網(wǎng)站使用 3 臺(tái)服務(wù)器,分別是應(yīng)用服務(wù)器、文件服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器。這 3 臺(tái)服務(wù)器對(duì)硬件資源的要求越來越高,它們需要更強(qiáng)大的CPU、更快的磁盤和更大的內(nèi)存去支撐這些服務(wù)器運(yùn)行。
隨著用戶的持續(xù)增加,網(wǎng)站又會(huì)一次面臨挑戰(zhàn):數(shù)據(jù)庫(kù)壓力太大導(dǎo)致整站訪問效率再此下降,用戶體驗(yàn)受到影響。一個(gè)網(wǎng)站,往往大部分的業(yè)務(wù)訪問集中在 20% 的數(shù)據(jù)上。就拿微博來說,微博請(qǐng)求量最多的肯定是那些千萬級(jí)粉絲的大 V 的微博,而幾乎沒有人去關(guān)注那些小號(hào)的首頁。我們可以利用這個(gè)特點(diǎn),把這一小部分?jǐn)?shù)據(jù)先提前緩存在內(nèi)存中,而不是每次都去數(shù)據(jù)庫(kù)讀取,這樣就可以減少數(shù)據(jù)庫(kù)的訪問壓力,從而提高整個(gè)網(wǎng)站的訪問速度。網(wǎng)站使用的緩存一般分為緩存到應(yīng)用服務(wù)器或者緩存在專門的分布式緩存服務(wù)器。緩存到應(yīng)用服務(wù)器的訪問速度快很多,但是受自身內(nèi)存限制,往往不太適用。遠(yuǎn)程分布式緩存使用一個(gè)集群專門負(fù)責(zé)緩存服務(wù),當(dāng)內(nèi)存不夠還可以輕松得動(dòng)態(tài)擴(kuò)容。
使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力使用緩存后,數(shù)據(jù)訪問壓力得到了緩解,但是單一應(yīng)用服務(wù)器能夠處理的請(qǐng)求連接有限,在網(wǎng)站訪問高峰期,應(yīng)用服務(wù)器就成了整個(gè)網(wǎng)站的效率瓶頸。當(dāng)一臺(tái)服務(wù)器的處理能力和存儲(chǔ)空間不足時(shí),不要嘗試去更換更強(qiáng)大的服務(wù)器,對(duì)大型網(wǎng)站而言,多么強(qiáng)大的服務(wù)器,都滿足不了網(wǎng)站持續(xù)增長(zhǎng)的業(yè)務(wù)需求。這種情況下,更恰當(dāng)?shù)淖龇ㄊ窃黾右慌_(tái)服務(wù)器分擔(dān)原有服務(wù)器的訪問及存儲(chǔ)壓力。對(duì)網(wǎng)站架構(gòu)而言,只要能通過增加一臺(tái)服務(wù)器的方式改善負(fù)載壓力,就可以以同樣的方式持續(xù)增加服務(wù)器不斷改善系統(tǒng)性能,從而實(shí)現(xiàn)系統(tǒng)的可伸縮性。應(yīng)用服務(wù)器實(shí)現(xiàn)集群是網(wǎng)站可伸縮架構(gòu)設(shè)計(jì)中較為簡(jiǎn)單成熟的一種。