我的運行環(huán)境:Windows2003?Server?SP4?+?J2SDK1.5.0?+Tomcat5.5.9
準(zhǔn)備軟件
Tomcat?5.5.9???JDK1.5.0
一.配置過程
1、????安裝JDK1.5.0。采用默認(rèn)安裝就可以。
2、????安裝tomcat到C:\?tomcat?50,采用完全安裝,該程序用于實現(xiàn)負(fù)載均衡功能。
3、????將tomcat50的內(nèi)容進(jìn)行完全復(fù)制,生成C:\?tomcat?51、C:\?tomcat?52、C:\?tomcat?53,分別用做集群中的節(jié)點。??
4、????修改負(fù)載均衡規(guī)則,使其遵循輪循算法(RoundRobin)。
4.1將testLB.jsp復(fù)制到c:\tomcat50\webapps\balancer文件夾中
???4.2將文件夾classes復(fù)制到c:\tomcat50\webapps\balancer\WEB-INF文件夾中
???4.3修改c:\web\tomcat50\webapps\balancer\WEB-INF\web.xml文件如下:
???<filter-mapping>
????<filter-name>BalancerFilter</filter-name>
????<url-pattern>/LoadBalancer</url-pattern>
??</filter-mapping>
5、????在集群中每個節(jié)點下,部署clusterapp應(yīng)用。Clusterapp包含sessiondata.jsp,test.jsp,腳本。test.jsp是用來驗證節(jié)點狀態(tài)的頁面;sessiondata.jsp是用來響應(yīng)用戶所發(fā)送的請求,同時記錄會話ID,會話的起始和最后時間,提供用戶增加、修改、刪除會話的屬性字段和屬性值,可以通過此來判斷會話的持續(xù)與否。
6、????將log4j的log4j-1.2.9.jar復(fù)制到每個%tomcat%/common/?lib下,使其將會話日志統(tǒng)一存儲到指定的文件中。
7、????修改每個tomcat的server.xml配置文件,參數(shù)如下表所示。
配置??????????????Instance?1????Instance?2???????Instance?3????Instance?4
Instance?Type????Load?Balancer????Node?1???????Node?2?????????????Node?3
Code?name?????????????TC-LB?????????????TC01???????TC02?????????????TC03
Home?Directory????c:/tomcat50????c:/tomcat51??????c:/tomcat52????c:/tomcat53
Server?Port????8005??????????9005??????10005????????????11005
Connector?????????????8080?????????9080???????????????10080????????????11080
JK2?AJP?Connector????8009?????????9009???????????????10009????????????11009
Cluster?mcastAddr????228.0.0.4?????????228.0.0.4????228.0.0.4???????????228.0.0.4
Cluster?mcastPort????45564????????45564??????????????45564???????????45564
tcpListenAddress????127.0.0.1????????127.0.0.1????127.0.0.1???????????127.0.0.1
Cluster?tcpListenPort?4000????????4001?????????????4002???????????4003
8、修改c:\web\tomcat50\webapps\balancer\WEB-INF\config\ruler.xml文件如下:
<?xml?version="1.0"?encoding="UTF-8"?>
<rules>
????<!--??Redirect?to?server?instance?based?on?RoundomRobinRule??-->
????<rule?className="org.apache.webapp.balancer.rules.RandomRedirectRule"
????????serverInstance="1"
????????maxServerInstances="3"
????????tcpListenAddress="127.0.0.1"
????????tcpListenPort="4001"
????????testWebPage="http://localhost:9080/clusterapp/test.jsp"
????????redirectUrl="http://localhost:9080/clusterapp/sessiondata.jsp"?/>
????<rule?className="org.apache.webapp.balancer.rules.RandomRedirectRule"
????????serverInstance="2"
????????maxServerInstances="3"
????????tcpListenAddress="127.0.0.1"
????????tcpListenPort="4002"
????????testWebPage="http://localhost:10080/clusterapp/test.jsp"
????redirectUrl="http://localhost:10080/clusterapp/sessiondata.jsp"?/>
????<rule?className="org.apache.webapp.balancer.rules.RandomRedirectRule"
????????serverInstance="3"
????????maxServerInstances="3"
????????tcpListenAddress="127.0.0.1"
????????tcpListenPort="4003"
????????testWebPage="http://localhost:11080/clusterapp/test.jsp"
????redirectUrl="http://localhost:11080/clusterapp/sessiondata.jsp"?/>
????<!--??Default?redirect?if?none?of?the?above?rules?match??-->
????<rule?className="org.apache.webapp.balancer.rules.AcceptEverythingRule"
????????redirectUrl="http://localhost:8080/balancer/testLB.jsp"?/>
</rules>
9、啟動tomcat的應(yīng)用。手動雙擊每個tomcat/bin的startup.bat程序。
二.Web請求集群環(huán)境下流程
1、????啟動訪問起始頁(http://localhost:8080/balancer/testLB.jsp)
2、????JSP重定向請求到負(fù)載均衡過濾文件(http://localhost:8080/balancer/LoadBalancer)
3、????負(fù)載均衡的tomcat接受請求,根據(jù)制定的負(fù)載均衡算法,重定向到可用的集群節(jié)點(TC01、TC02、TC03)
4、????對應(yīng)集群中節(jié)點的sessiondata.jsp(位于clusterapp應(yīng)用下)頁面將啟動。
5、????sesiondata.jsp將在web上顯示會話的詳細(xì)信息(如會話ID,最后訪問時間)
在測試的過程中采用RoundRobin算法,通過對Instance?1發(fā)起多個http://localhost:8080/balancer/testLB.jsp測試請求,發(fā)現(xiàn)每個請求返回頁面的端口號不完全一致,在9080、10080、11080端口不規(guī)則的出現(xiàn),即客戶端的訪問請求按照RoundRobin算法被重定向到不同的服務(wù)器上進(jìn)行處理,說明該負(fù)載均衡規(guī)則在這個測試中得到正確的體現(xiàn)。在關(guān)閉集群中一個節(jié)點后再啟用它,能夠自動發(fā)現(xiàn)該節(jié)點,并為該節(jié)點分配請求。