準(zhǔn)備軟件 1、? Tomcat5.5.17,下載地址:http://www.apache.org/dist/tomcat/tomcat-5/v5.5.17/bin/2、? Apache2.2.3,下載地址:http://apache.justdn.org/httpd/binaries/win32/apache_2.2.3-win32-x86-no_ssl.msi?;3、? mod_jk-1.2.20-apache-2.2.3.so模塊,,下載地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.20/。集群與負(fù)載平衡??? 使用mod_jk默認(rèn)的以輪循方式進(jìn)行平衡負(fù)載,而集群方式也是使用這種方法進(jìn)行平衡。Tomcat中的集群原理是通過(guò)組播的方式進(jìn)行節(jié)點(diǎn)的查找并使用TCP連接進(jìn)行會(huì)話的復(fù)制。
??? 集群不同于負(fù)載平衡的是,由于集群服務(wù)需要在處理請(qǐng)求之間不斷地進(jìn)行會(huì)話復(fù)制,復(fù)制后的會(huì)話將會(huì)慢慢變得龐大,因此它的資源占用率是非常高的,如果在并發(fā)量大的應(yīng)用中,復(fù)制的會(huì)話大小會(huì)變得相當(dāng)大,而使用的總內(nèi)存更是會(huì)迅速升高。
??? 但集群的會(huì)話復(fù)制,增加了系統(tǒng)的高可用性。由于在每臺(tái)服務(wù)器都保存有用戶的Session信息,如果服務(wù)器群中某臺(tái)當(dāng)機(jī),應(yīng)用可以自動(dòng)切換到其它服務(wù)器上繼續(xù)運(yùn)行,而用戶的信息不會(huì)丟失,這提高了應(yīng)用的冗錯(cuò)性。
??? 具體采用負(fù)載平衡還是集群,這要看應(yīng)用的需求了。安裝配置Apache
??? 安裝前請(qǐng)確認(rèn)IIS服務(wù)停止,因?yàn)锳pache可能會(huì)使用80端口.1 、下載 Apache 的安裝程序 apache_2.2.3-win32-x86-no_ssl.exe 后,安裝很簡(jiǎn)單,一路回車,就此略過(guò)。
2 、安裝完畢后,將下載的 mod_jk-1.2.20-apache-2.2.3.so改名為mod_jk.so并 復(fù)制到 Apache 安裝目錄下的 modules 子目錄中。
3 、然后進(jìn)入 Apache 安裝目錄下的 conf 子目錄中,打開(kāi) httpd.conf 配置文件,在最后插入以下一行: Include conf/mod_jk.conf
4、? 在 conf 子目錄下,建立一個(gè)新的配置文件: mod_jk.conf ,此文件為 Apache 加載連接器的配置文件,文件名可修改,但要與 httpd.conf 中 Include 的文件名一致,在logs子目錄下建立日志文件mod_jk.log,mod_jk.conf內(nèi)容如下:
注:以上定義了三個(gè)worker,分別為node1,node2,node2;8009端口是Tomcat默認(rèn)的ajp端口;定義了一個(gè)負(fù)載平衡服務(wù)器loadbalancer,相關(guān)的詳細(xì)說(shuō)明可以看官方的網(wǎng)站文檔:http://tomcat.apache.org/connectors-doc/,其它節(jié)點(diǎn)的定義可以直接Copy,修改一下節(jié)點(diǎn)名及IP就好了。A、worker.list=loadbalancer
設(shè)定工作的負(fù)載平衡器,各Tomcat節(jié)點(diǎn)不能加入此列表。
?????? B、worker.server99.lbfactor
負(fù)載平衡的權(quán)重比,如果此權(quán)重比越大,則分配到此節(jié)點(diǎn)的請(qǐng)求越多,如以上兩個(gè)節(jié)點(diǎn)的權(quán)重比為1:1,則為平均分配。
C、worker.loadbalancer.balance_workers=node1,node2,node3
?? 指定此負(fù)載平衡器負(fù)責(zé)的Tomcat應(yīng)用節(jié)點(diǎn)。
D、worker.loadbalancer.sticky_session=true
?? 此處指定集群是否需要會(huì)話復(fù)制,如果設(shè)為true,則表明為會(huì)話粘性,不進(jìn)行會(huì)話復(fù)制,當(dāng)某用戶的請(qǐng)求第一次分發(fā)到哪臺(tái)Tomcat后,后繼的請(qǐng)求會(huì)一直分發(fā)到此Tomcat服務(wù)器上處理;如果設(shè)為false,則表明需求會(huì)話復(fù)制。當(dāng)設(shè)置為0(false)時(shí),是基于請(qǐng)求的負(fù)載均衡,為1(true)時(shí)是基于用戶的負(fù)載均衡。
E、worker.loadbalancer.sticky_session_force=true
?? 如果上面的sticky_session設(shè)為true時(shí),建議此處也設(shè)為true,此參數(shù)表明如果集群中某臺(tái)Tomcat服務(wù)器在多次請(qǐng)求沒(méi)有響應(yīng)后,是否將當(dāng)前的請(qǐng)求,轉(zhuǎn)發(fā)到其它Tomcat服務(wù)器上處理;此參數(shù)在sticky_session=true時(shí),影響比較大,會(huì)導(dǎo)致轉(zhuǎn)發(fā)到其它Tomcat服務(wù)器上的請(qǐng)求,找不到原來(lái)的session,所以如果此時(shí)請(qǐng)求中有讀取session中某些信息的話,就會(huì)導(dǎo)致應(yīng)用的null異常。
Powered by: BlogJava Copyright © zolly