亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于nginx、tomcat、redis的高性能Java Web開源架構(gòu)

        2014-04-29 00:00:00陳玲

        摘 要:Java Web最常用的服務(wù)器是Tomcat,但是Tomcat處理靜態(tài)資源能力有著缺陷,本文介紹了使用tomcat集群加nginx作為web服務(wù)器,同時(shí)nginx做負(fù)載均衡,加上redis內(nèi)存數(shù)據(jù)庫(kù)作為session存儲(chǔ)和數(shù)據(jù)庫(kù)緩存的架構(gòu)方案,所有這些技術(shù)均為開源軟件,免除了授權(quán)的問題。

        關(guān)鍵詞:Tomcat;nginx;redis;開源

        中圖分類號(hào):TP311.52

        Tomcat快速、高效、易于部署,并且開源,是Java Web最常用的開源服務(wù)器。但是在處理靜態(tài)資源上,Tomcat相對(duì)于現(xiàn)在流行的高性能Web服務(wù)器,如nginx、lighttpd尚有不小的差距。因此,在追求高并發(fā)、重負(fù)載的場(chǎng)合,可以在Tomcat集群前加上nginx處理靜態(tài)資源以及負(fù)載均衡。同時(shí),對(duì)于高并發(fā)的場(chǎng)合,數(shù)據(jù)庫(kù)的查詢性能很容易成為瓶頸,使用連接池技術(shù)加上內(nèi)存數(shù)據(jù)庫(kù)redis作緩存可以大幅度的提升查詢性能。

        1 Tomcat集群和調(diào)優(yōu)

        Tomcat建議安裝在64位Linux系統(tǒng)下,在32位系統(tǒng)中,即使某些操作系統(tǒng)可以使用超過4G,JVM的也限制了最多只能夠使用2G內(nèi)存。Tomcat容器的默認(rèn)配置吞吐量也不能夠滿足高并發(fā)服務(wù)的需要,因此需要更改Tomcat的配置,修改server.xml文件。

        URIEncoding=\"UTF-8\" minSpareThreads=\"25\" maxSpareThreads=\"75\"

        enableLookups=\"1\" disableUploadTimeout=\"true\" connectionTimeout=\"20000\"

        acceptCount=\"300\" maxThreads=\"300\"maxProcessors=\"1000\" minProcessors=\"5\"

        useURIValidationHack=\"1\" compression=\"on\"

        compressionMinSize=\"2048\"

        compressableMimeType=\"text/html,text/xml,text/javascript,text/css,text/plain\"

        redirectPort=\"8443\"

        />

        其中URIEncoding=”UTF-8”表示可以解析含有中文的URL,acceptCount是等待隊(duì)列,maxThreads為最大線程數(shù),即最大并發(fā)數(shù)。

        單個(gè)Tomcat處理能力有限,在現(xiàn)在的服務(wù)器配置情況下,常常不能夠利用完CPU和內(nèi)存就達(dá)到最大負(fù)載,此時(shí),可以使用Tomcat的縱向集群,即單臺(tái)服務(wù)器運(yùn)行多個(gè)Tomcat。如果還不能達(dá)到高并發(fā)的需要,那么就需要使用Tomcat的橫向集群,即多臺(tái)服務(wù)器運(yùn)行多個(gè)Tomcat。

        集群方案可以使用Tomcat自帶的cluster方式,多個(gè)Tomcat間自動(dòng)實(shí)時(shí)復(fù)制session信息,配置簡(jiǎn)單。但該方案的效率比較低,在高并發(fā)場(chǎng)合下表現(xiàn)并不好。另一種方案是利用nginx的基于訪問IP的hash路由策略,保證訪問的IP始終被路由到同一個(gè)tomcat上。以單服務(wù)器Tomcat集群為例,需要修改Tomcat的三處端口。首先是修改Tomcat的關(guān)閉端口,每個(gè)Tomcat不能重復(fù):

        然后修改Tomcat的監(jiān)聽端口,同樣不能重復(fù):

        redirectPort=\"8443\" />

        第三處端口修改Tomcat的連接端口:

        最后Engine元素增加jvmRoute屬性

        2 nginx作負(fù)載均衡和動(dòng)靜態(tài)分離

        nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,處理靜態(tài)資源的能力得到了眾多高并發(fā)Web站點(diǎn)的考驗(yàn),nginx可以按照調(diào)度規(guī)則實(shí)現(xiàn)動(dòng)態(tài)、靜態(tài)頁面的分離,可以按照輪詢、ip hash、URL hash、權(quán)重等多種方式對(duì)后端服務(wù)器做負(fù)載均衡。使用nginx在Tomcat的前端作反向代理,nginx處理如html、css、js、圖片等靜態(tài)資源,而將動(dòng)態(tài)的請(qǐng)求轉(zhuǎn)發(fā)給Tomcat集群進(jìn)行處理,從而充分的結(jié)合nginx和Tomcat的長(zhǎng)處,分別處理靜態(tài)和動(dòng)態(tài)資源。

        nginx的負(fù)載均衡配置配置如下所示:

        upstream web_server {

        #ip_hash;

        server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;

        server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;

        }

        其中參數(shù)max_fails=3,表示允許在30秒內(nèi)后端服務(wù)器有3次失敗,如果大于3次,則將該后端服務(wù)器標(biāo)記為不可用,該參數(shù)主要用過于對(duì)后端服務(wù)器進(jìn)行健康檢查。

        3 redis做session存儲(chǔ)

        Web服務(wù)集群最大的難點(diǎn)就是如何能在集群中的多個(gè)節(jié)點(diǎn)之間保持?jǐn)?shù)據(jù)的一致性,Session是這些數(shù)據(jù)中最重要的一塊。Tomcat集群可以通過Tomcat自帶的session復(fù)制,將session同步復(fù)制到每一個(gè)Tomcat中,但如果集群內(nèi)節(jié)點(diǎn)較多,容易引起session廣播風(fēng)暴。還有種方案是將session放到一個(gè)數(shù)據(jù)庫(kù)中集中存儲(chǔ),這就要求該數(shù)據(jù)庫(kù)具備非常高的性能,使用redis內(nèi)存數(shù)據(jù)庫(kù)可以很好的滿足Tomcat集群的需求。在Tomcat 的conf/context.xml 文件里增加如下內(nèi)容:

        host=\"localhost\" port=\"6379\"

        database=\"0\" maxInactiveInterval=\"60\" />

        4 redis用作數(shù)據(jù)緩存

        Web應(yīng)用并發(fā)數(shù)增大后,數(shù)據(jù)庫(kù)I/O容易成為整個(gè)系統(tǒng)的瓶頸,一般可以通過數(shù)據(jù)庫(kù)拆分,建立數(shù)據(jù)庫(kù)集群來解決該問題,但數(shù)據(jù)庫(kù)集群的建立無疑需要較大的成本,同時(shí)必須要由水平很高的DBA進(jìn)行實(shí)施。如果使用內(nèi)存數(shù)據(jù)庫(kù)對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)做緩存,實(shí)現(xiàn)查詢緩存(以sql為key緩存查詢結(jié)果)和數(shù)據(jù)緩沖,由于內(nèi)存的訪問速度遠(yuǎn)遠(yuǎn)超過硬盤,可以極大的提升查詢效率。同時(shí)也可以將一些更新頻率較低但查詢頻率較高(如基礎(chǔ)數(shù)據(jù)表、配置文件)等數(shù)據(jù)在應(yīng)用啟動(dòng)時(shí)即加載到redis中。

        5 結(jié)束語

        本文描述了nginx+tomcat集群的配置方案,同時(shí)使用了redis內(nèi)存數(shù)據(jù)庫(kù)做session集中存儲(chǔ)和數(shù)據(jù)庫(kù)緩存,該方案可以應(yīng)對(duì)高并發(fā)和重負(fù)載的Web站點(diǎn)所需,并且使用的所有技術(shù)均為開源軟件,建議使用的服務(wù)器操作系統(tǒng)為L(zhǎng)inux,可以節(jié)省軟件使用的授權(quán)成本。

        參考文獻(xiàn):

        [1]曾超宇,李金香.Redis在高速緩存系統(tǒng)中的應(yīng)用[J].微型機(jī)與應(yīng)用,2013(12).

        [2]任世宗,李潤(rùn)知,張茜.基于Nginx的可擴(kuò)展負(fù)載均衡Web站點(diǎn)部署[J].中國(guó)教育網(wǎng)絡(luò),2014(08).

        作者單位:瀘州職業(yè)技術(shù)學(xué)院,四川瀘州 646005

        亚洲一区二区三区最新视频| 人妻丰满熟妇av无码片| 日本高清一道本一区二区| 极品尤物一区二区三区| 日本高清视频www| 国产91在线免费| 国产精品无码无片在线观看3D| 久久久精品国产亚洲麻色欲| 清纯唯美亚洲经典中文字幕| 在线精品国产亚洲av蜜桃| 精品国产性色无码av网站| 99久久99久久精品国产片果冻| 国产激情无码Av毛片久久| 狠狠色丁香婷婷久久综合2021| 我的极品小姨在线观看| 蜜桃av噜噜一区二区三区策驰| 麻豆╳╳╳乱女另类| a级黑人大硬长爽猛出猛进 | 亚洲国产精品久久精品 | 久久丫精品国产亚洲av不卡 | 老师开裆丝袜喷水视频| 国产亚洲精品久久久ai换| 极品美女高潮喷白浆视频| 久久综合激激的五月天| 日韩高清不卡一区二区三区| 娇小女人被黑人插免费视频| 亚洲色成人www永久在线观看| 又爽又黄禁片视频1000免费| 亚洲国产精品第一区二区三区| 91久久国产香蕉熟女线看| 艳妇臀荡乳欲伦69调教视频| 国产人在线成免费视频| 国产精品视频一区二区三区,| 蜜桃成熟时日本一区二区| 国产精品久人妻精品老妇| 99精品国产99久久久久久97 | 91久久国产香蕉熟女线看| 人人爽人人爽人人片av| 一本一本久久a久久精品综合| 视频精品熟女一区二区三区| 久草视频这里只有精品|