其實(shí)無(wú)論是分布式,數(shù)據(jù)緩存,還是負(fù)載均衡,無(wú)非就是改善網(wǎng)站的性能瓶頸,在網(wǎng)站源碼不做優(yōu)化的情況下,負(fù)載均衡可以說(shuō)是最直接的手段了。其實(shí)拋開(kāi)這個(gè)名詞,放開(kāi)了說(shuō),就是希望用戶能夠分流,也就是說(shuō)把所有用戶的訪問(wèn)壓力分散到多臺(tái)服務(wù)器上,也可以分散到多個(gè)tomcat里,如果一臺(tái)服務(wù)器裝多個(gè)tomcat,那么即使是負(fù)載均衡,性能也提高不了太多,不過(guò)可以提高穩(wěn)定性,即容錯(cuò)性。當(dāng)其中一個(gè)主tomcat當(dāng)?shù)?其他的tomcat也可以補(bǔ)上,因?yàn)閠omcat之間實(shí)現(xiàn)了Session共享。待tomcat服務(wù)器修復(fù)后再次啟動(dòng),就會(huì)自動(dòng)拷貝所有session數(shù)據(jù),然后加入集群。這樣就可以不間斷的提供服務(wù)。如果要真正從本質(zhì)上提升性能,必須要分布到多臺(tái)服務(wù)器。同樣tomcat也可以做到。網(wǎng)上相關(guān)資料比較多,可以很方便的查到,但是質(zhì)量不算高。我希望可以通過(guò)這篇隨筆,系統(tǒng)的總結(jié)。本文的
例子是同一臺(tái)服務(wù)器上運(yùn)行兩個(gè)tomcat,做兩個(gè)tomcat之間的負(fù)載均衡。其實(shí)多臺(tái)服務(wù)器各配置一個(gè)tomcat也可以,而且那樣的話,可以使用安裝版的tomcat,而不用是下文中的免安裝的tomcat,而且tomcat端口配置也就不用修改了。下文也會(huì)提到。
tomcat的負(fù)載均衡需要apache服務(wù)器的加入來(lái)實(shí)現(xiàn)。在進(jìn)行配置之前請(qǐng)先卸載調(diào)已安裝的tomcat,然后檢查apache的版本。我這次配置使用的是apache-tomcat-6.0.18免安裝版本,我親自測(cè)試后推斷安裝版的tomcat在同一臺(tái)機(jī)子上會(huì)不能啟動(dòng)兩個(gè)以上,可能是因?yàn)榘惭b版的tomcat侵入了系統(tǒng),導(dǎo)致即使在server.xml里修改了配置,還是會(huì)引起沖突。所以我使用tomcat免安裝版。
apache使用的是apache_2.2.11-win32-x86-no_ssl.msi。如果版本低于2.2Apache負(fù)載均衡的配置要有所不同,因?yàn)檫@個(gè)2.2.11和2.2.8版本集成了jk2等負(fù)載均衡工具,所以配置要簡(jiǎn)單許多。別的版本我沒(méi)有具體測(cè)試,有待考究。這兩個(gè)軟件可以到官方網(wǎng)站下載。
把Apache安裝為運(yùn)行在80端口的Windows服務(wù),安裝成功后在系統(tǒng)服務(wù)列表中可以看到Apache2.2服務(wù)。服務(wù)啟動(dòng)后在瀏覽器中輸入http://localhost進(jìn)行測(cè)試,如果能看到一個(gè)"It works!"的頁(yè)面就代表Apache已經(jīng)正常工作了。把tomcat解壓到任意目錄,賦值一個(gè)另命名。起名和路徑對(duì)配置沒(méi)有影響。但要保證端口不要沖突,如果裝有Oracle或IIS的用戶需要修改或關(guān)閉相關(guān)接口的服務(wù)。當(dāng)然jdk的配置也是必須的,這個(gè)不再過(guò)多敘述。
想要達(dá)到負(fù)載均衡的目的,首先,在Apache安裝目錄下找到conf/httpd.conf文件,去掉以下文本前的注釋符(#)以便讓Apache在啟動(dòng)時(shí)自動(dòng)加載代理(proxy)模塊。
代碼如下:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
新聞熱點(diǎn)
疑難解答
圖片精選