|
1、基本概念總結(jié)
a. 什么是Domain和Server
??? Domain是WebLogic Server實例的基本管理單元。所謂Domain就是,由配置為Administrator Server的WebLogic Server實例管理的邏輯單元,這個單元是有所有相關(guān)資源的集合。
??? Server是一個相對獨立的,為實現(xiàn)某些特定功能而結(jié)合在一起的單元。
b. Domain and Server的關(guān)系
一個Domain 可以包含一個或多個WebLogic Server實例,甚至是Server集群。一個Domain中有一個且只能有一個Server 擔(dān)任管理Server的功能,其它的Server具體實現(xiàn)一個特定的邏輯功能。
c. WebLogic集群的體系結(jié)構(gòu)
?? 1. 單層混合型的集群架構(gòu)
??? 這種架構(gòu)將所有的Web應(yīng)用以及相關(guān)的服務(wù)應(yīng)用全部置于集群中的單一WLS實例中,這種架構(gòu)的優(yōu)勢在于:
?? >> 易于管理
?? >> 靈活的負(fù)載平衡機(jī)制
?? >> 更強(qiáng)的安全控制
?? 2. 多層結(jié)構(gòu)的集群架構(gòu)
??? 這種架構(gòu)使用兩個WLS集群,一個放置表靜態(tài)內(nèi)容和集群Servlet,另一個放置集群EJB。一般應(yīng)用于下面這些情況:
?? >> 在負(fù)載平衡機(jī)制需要調(diào)用集群EJB中的方法時;
?? >> 在提供內(nèi)容與提供對象的服務(wù)之間需要更大的機(jī)動性時;
?? >> 在需要更高的系統(tǒng)穩(wěn)定性時;
d. 配置集群應(yīng)用的必要條件
?? 1. 集群中的所有Server必須位于同一網(wǎng)段,并且必須是IP廣播(UDP)可到達(dá)的
?? 2. 集群中的所有Server必須使用相同的版本,包括Service Pack
?? 3. 集群中的Server必須使用永久的靜態(tài)IP地址。動態(tài)IP地址分配不能用于集群環(huán)境。如果服務(wù)器位于防火墻后面,而客戶機(jī)位于防火墻外面,那么服務(wù)器必須有公共的靜態(tài)IP地址,只有這樣,客戶端才能訪問服務(wù)器
?? 4. 要以CLUSTER方式運行,必須有包含CLUSTER許可的LICENSE才行.
2、集群配置總結(jié)
a. 配置集群可以在新建域(Domain)的時候進(jìn)行,也可以在一個現(xiàn)有的域的基礎(chǔ)上進(jìn)行
b. 在沒有集群的環(huán)境下,新建一個域時可以將管理服務(wù)器(Admin Server)作為事務(wù)處理服務(wù)器使用,否則管理服務(wù)器應(yīng)該指向集群的Admin Server所在的機(jī)器。
c. 啟動Managed Server的方法有兩種,一種是以命令行的方式,即: startManagedWebLoigc managedserver http://adminserver_address/;第二種是在WebLogic管理控制臺中啟動此時必須先啟動NodeManager,并且在一臺機(jī)器上的多個Server只需要啟一個 NodeManager實例。兩種啟動方式下Weblogic的后臺輸出是不一樣的,前者輸出到控制臺窗口,后者輸出到ModeManager目錄下的日志文件中,一個Server一個日志文件。
d. 必須通過HttpClusterServlet實現(xiàn)集群的自動請求轉(zhuǎn)發(fā),也就是說必須創(chuàng)建一個Server作為代理服務(wù)器(proxy Server)。
?? 在代理服務(wù)器上部署缺省的Web應(yīng)用,該應(yīng)用的WEB-INF目錄包括下兩個文件,其中web.xml內(nèi)容如下:
?<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "?<web-app id="WebApp_ID">
???? <display-name>NJGS Web Application</display-name>
????
???? <servlet>
????? <servlet-name>HttpClusterServlet</servlet-name>
????? <servlet-class>
??????????? weblogic.servlet.proxy.HttpClusterServlet
????? </servlet-class>
????? <init-param>
????????? <param-name>WebLogicCluster</param-name>
????????? <param-value>
??????????? localhost:7011|localhost:7012|localhost:7013
????????? </param-value>
????? </init-param>
?????
????? <init-param>
????<param-name>DebugConfigInfo</param-name>
????<param-value>ON</param-value>
????? </init-param>
???? </servlet>
????
???? <servlet-mapping>
?????? <servlet-name>HttpClusterServlet</servlet-name>
?????? <url-pattern>/</url-pattern>
???? </servlet-mapping>
????
????? <servlet-mapping>
?????? <servlet-name>HttpClusterServlet</servlet-name>
?????? <url-pattern>*.jsp</url-pattern>
???? </servlet-mapping>
????
????
???? <servlet-mapping>
?????? <servlet-name>HttpClusterServlet</servlet-name>
?????? <url-pattern>*.html</url-pattern>
???? </servlet-mapping>
????
????? <servlet-mapping>
?????? <servlet-name>HttpClusterServlet</servlet-name>
?????? <url-pattern>*.htm</url-pattern>
???? </servlet-mapping>
??
</web-app>
?
?? weblogic.xml文件的內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "<weblogic-web-app>
?<context-root>/</context-root>
</weblogic-web-app>
注意上述context-root的內(nèi)容必須為 /
e. Web應(yīng)用向集群上部署時,必須選擇部署到整個集群或者集群中的某些服務(wù)器,Http請求的轉(zhuǎn)發(fā)由代理服務(wù)器自動處理。
f. 可以寫個簡單的頁面,并且用JMeter模擬上百個請求同時訪問該頁面以 測試集群功能。請求的格式為 http://proxyserver_address/應(yīng)用名/測試jps頁面
E:\bea\user_projects\domains\mydomain>startmanagedweblogic managed2 http://IP:7001
cd
startweblogic
startmanagedweblogic managed2 http://IP:7001