網(wǎng)絡(luò)是生活在互聯(lián)網(wǎng)世界的我們形影不離的存在,新浪微博、今日頭條、搜狐新聞、騰訊視頻、微信QQ等我們常常訪問的大型網(wǎng)站的網(wǎng)站服務(wù)器架構(gòu)需要哪些服務(wù)器呢?
1、Web服務(wù)器
Web服務(wù)器主要是為訪客提供http訪問或是加密https訪問的服務(wù)器,所接觸到的網(wǎng)頁(yè)就是直接從Web服務(wù)器中發(fā)送出來(lái)的,處于網(wǎng)站服務(wù)器的最前端。在windows服務(wù)器系統(tǒng)上常使用的是IIS,在unix和Linux服務(wù)器系統(tǒng)上常使用的是Apache、Nginx。
2、應(yīng)用程序服務(wù)器
應(yīng)用程序服務(wù)器是作為服務(wù)器執(zhí)行共享業(yè)務(wù)應(yīng)用程序的底層的系統(tǒng)軟件服務(wù)器,所訪問的app請(qǐng)求就是在應(yīng)用服務(wù)器中處理的。在應(yīng)用程序服務(wù)器上運(yùn)行著各式的業(yè)務(wù)邏輯,主要是是EJB、 JNDI和JMX API等J2EE API方面的,還包含事務(wù)處理、業(yè)務(wù)邏輯管理、數(shù)據(jù)庫(kù)連接等功能。
3、數(shù)據(jù)庫(kù)服務(wù)器
運(yùn)行在局域網(wǎng)中的一臺(tái)或多臺(tái)計(jì)算機(jī)和數(shù)據(jù)庫(kù)管理系統(tǒng)軟件共同構(gòu)成了數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器為客戶應(yīng)用提供服務(wù),這些服務(wù)是查詢、更新、事務(wù)管理、索引、高速緩存、查詢優(yōu)化、安全及多用戶存取控制等。
4、代理服務(wù)器
代理服務(wù)器通常是客戶端訪問的一種行為。它雖然不屬于網(wǎng)站部署中的環(huán)境,但在整體的客戶端訪問中,它卻是一個(gè)重要環(huán)節(jié)的服務(wù)器。
5、反向代理服務(wù)器
與代理服務(wù)器相對(duì),還有一個(gè)反向代理服務(wù)器,其功能是Web服務(wù)器的功能。但是從它這里拿到的網(wǎng)頁(yè)不是最原始產(chǎn)生頁(yè)面的"產(chǎn)生地",而是由它從頁(yè)面的"產(chǎn)生地"取回頁(yè)面后的一個(gè)緩存。代理服務(wù)器中緩存的內(nèi)容通常是由某些用戶訪問某個(gè)頁(yè)面而產(chǎn)生訪問請(qǐng)求后,在客戶端代理服務(wù)器上留下的緩存;而反向代理服務(wù)器上緩存的頁(yè)面,不是由于某些用戶訪問某個(gè)頁(yè)面后留下的緩存,卻是根據(jù)網(wǎng)站運(yùn)維的策略定期、定時(shí)地生成一些后臺(tái)服務(wù)器的頁(yè)面緩存。
代理服務(wù)器與反向代理服務(wù)器的區(qū)別:代理服務(wù)器是工作在客戶端,反向代理服務(wù)器時(shí)工作在服務(wù)器端,Nginx服務(wù)器常被用作于反向代理服務(wù)器。
6、 后臺(tái)服務(wù)器
后臺(tái)服務(wù)器只是一個(gè)說(shuō)法而已,這是根據(jù)它的工作特點(diǎn)來(lái)說(shuō)的,換句話說(shuō)是沒有直接提供給客戶訪問。例如眾多的FastCGI服務(wù)器,它們都工作在后臺(tái),HTTP協(xié)議卻無(wú)法訪問到它們,另一種情況,如果我們從前是通過使用Apache作為Web服務(wù)器提供HTTP訪問的,現(xiàn)在被Nginx反向代理了,是說(shuō)由Nginx直接面對(duì)客戶訪問,而將請(qǐng)求再轉(zhuǎn)到Apache服務(wù)器,那么這里的Apache服務(wù)器已經(jīng)成為后臺(tái)服務(wù)器了。
7、CDN緩存服務(wù)器
正如其名字,它是緩存服務(wù)器的角色,而且是反向代理的應(yīng)用,在網(wǎng)站部署中,它算是一種部署策略,即對(duì)于遠(yuǎn)距離訪問的解決方案,為了解決時(shí)間產(chǎn)生距離、時(shí)間縮短距離而產(chǎn)生的,它是反向代理的另一種應(yīng)用。
8、負(fù)載均衡服務(wù)器
負(fù)載均衡服務(wù)器主要作用是實(shí)現(xiàn)某些類型服務(wù)器的規(guī)模擴(kuò)展。比如對(duì)于系統(tǒng)前端的web服務(wù)器和后端的數(shù)據(jù)庫(kù)服務(wù)器,想通過加服務(wù)器實(shí)現(xiàn)N+1橫向擴(kuò)展,通過多臺(tái)服務(wù)器負(fù)載分擔(dān)壓力,負(fù)載均衡必不可少。
9、消息隊(duì)列服務(wù)器
隊(duì)列是系統(tǒng)解耦利器,也是大中型分布式系統(tǒng)標(biāo)配,沒有隊(duì)列,業(yè)務(wù)系統(tǒng)很容易高度耦合,系統(tǒng)吞吐量也會(huì)很快遭遇瓶頸。
10、文件服務(wù)器
分布式文件系統(tǒng),專門用于存儲(chǔ)業(yè)務(wù)系統(tǒng)需要的各種文件如圖片、多媒體文件等。
11、索引服務(wù)器
用于網(wǎng)站全文索引,搜索必備。對(duì)內(nèi)存和CPU要求較高,大型網(wǎng)站,通常還需要支持主從備份和容錯(cuò),甚至多實(shí)例索引集群。
12、搜索服務(wù)器
通常需要部署多臺(tái),否則查詢多了性能撐不住,對(duì)內(nèi)存要求不高。有的中小型站點(diǎn),索引和搜索服務(wù)器在物理和邏輯上都是同一臺(tái)服務(wù)器。
13、作業(yè)服務(wù)器
主要用于后端應(yīng)用程序大批量大數(shù)據(jù)量復(fù)雜業(yè)務(wù)邏輯的定時(shí)作業(yè),大多數(shù)互聯(lián)網(wǎng)公司標(biāo)配,某些企業(yè)的定時(shí)調(diào)度框架是直接部署在web服務(wù)器上的,可以減少這里的所謂作業(yè)服務(wù)器。
14、nosql服務(wù)器
海量數(shù)據(jù)處理的興起,各種nosql產(chǎn)品層出不窮,nosql服務(wù)器主要用于處理海量數(shù)據(jù),支持存儲(chǔ)、查詢、分片等。
web應(yīng)用中,有兩個(gè)一直是不好實(shí)現(xiàn)橫向擴(kuò)展或者由于歷史遺留問題實(shí)現(xiàn)代價(jià)非常大的東西,如你所知,就是:A、數(shù)據(jù)庫(kù) B、網(wǎng)絡(luò)帶寬。
而某些nosql的出現(xiàn)很可能解決這個(gè)歷史遺留難題,現(xiàn)在已經(jīng)有nosql產(chǎn)品彌補(bǔ)了關(guān)系型數(shù)據(jù)庫(kù)天生不支持橫向擴(kuò)展的缺點(diǎn),在特定場(chǎng)景下正在替代關(guān)系型數(shù)據(jù)庫(kù)。
15、其他
需求不斷變化和應(yīng)用需要,某些互聯(lián)網(wǎng)企業(yè)還可能衍生出基于安全的授權(quán)/證書服務(wù)器,全局唯一的流水號(hào)服務(wù)器,會(huì)話服務(wù)器等等。
大型網(wǎng)站面對(duì)著高負(fù)載、高并發(fā)的要求,對(duì)網(wǎng)站服務(wù)器的架構(gòu)更為苛刻,天下數(shù)據(jù)建議架構(gòu)Web服務(wù)器、應(yīng)用程序服務(wù)器、代理服務(wù)器、反向代理服務(wù)器、后臺(tái)服務(wù)器、CDN緩存服務(wù)器等類型的服務(wù)器來(lái)應(yīng)對(duì)需求。
作者:天下數(shù)據(jù)idc來(lái)源:IDC信息