配置WebLogic Server 9.2集羣

(本文講述如何在WebLogic Server 9.2上配置集羣,以及通過Http代理方式Proxy Server來訪問集羣)    

預備知識

什麼是Domain和Server

Domain

Domain是WebLogic Server實例的基本管理單元。所謂Domain就是,由配置爲Administrator Server的WebLogic Server實例管理的邏輯單元,這個單元是有所有相關資源的集合。

Server

Server是一個相對獨立的,爲實現某些特定功能而結合在一起的單元,該服務用於部署應用程序,其中代理服務還在該Server下建立。

Domain and Server的關係

一個Domain 可以包含一個或多個WebLogic Server實例,甚至是Server集羣。一個Domain中有一個且只能有一個Server 擔任管理Server的功能,其它的Server具體實現一個特定的邏輯功能。

 

負載均衡集羣

高擴展型集羣,即負載均衡集羣技術,就是帶均衡策略(算法)的服務器集羣。負載均衡集羣在多節點之間按照一定的策略(算法)分發網絡或計算處理負載。負載均衡建立在現有網絡結構之上,它提供了一種廉價有效的方法來擴展服務器帶寬,增加吞吐量,提高數據處理能力,同時又可以避免單點故障。以Web訪問爲例,後臺的多個Web服務器上面有相同的Web內容,Internet客戶端的訪問請求首先進入一臺服務器,由它根據負載均衡策略(算法)合理地分配給某個服務器,其中服務器可以是同一臺機器,也可不同機器。

WebLogic 集羣的工作機制

每一個Clustered service,在每一個server上都會有一個instance,即一個replica,這些replicas集合在一起形成一個replica-aware stub。這些stubs負責客戶端與相關的服務器段對象的通信,當客戶端請求該service時,實際上是向stub發出請求,stub根據不同的算法調用集合中某一replica,如果調用失敗,stub會檢測到錯誤並重新調用其它的replica。Cluster支持多種算法:隨機、輪循、基於性能的負載均衡的輪循(Weight-based round-robin)、根據參數值調用(Parameter-based routing)。WebLogic Cluster通過負載均衡和容錯最大程度的實現了它的可伸縮性和可用性。爲了提高Cluster的可伸縮性,必須保證充分利用每一個Server。WebLogic可以在不同平臺、不同性能的機器上安裝Server並進行Cluster,然後採用Weight-based round-robin算法達到負載均衡,從而使每一個Server都得到充分的利用。

本文環境

Ø         平臺:Windows 2003

Ø         軟件:WebLogic Server 9.2

配置WebLogic Server集羣

WebLogic集羣的體系結構

單層混合型的集羣架構(Cluster)

這種架構將所有的Web應用以及相關的服務應用全部置於集羣中的單一WLS實例中,這種架構的優勢在於:

Ø         易於管理

Ø         靈活的負載平衡機制

Ø         更強的安全控制

多層結構的集羣架構(Cluster)

這種架構使用兩個WLS集羣,一個放置表靜態內容和集羣Servlet,另一個放置集羣EJB。一般應用於下面這些情況:

Ø         在負載平衡機制需要調用集羣EJB中的方法時;

Ø         在提供內容與提供對象的服務之間需要更大的機動性時;

Ø         在需要更高的系統穩定性時;

根據東方資產的要求採用單層混合型的集羣架構可以滿足要求。

配置集羣應用的必要條件

Ø         集羣中的所有Server必須位於同一網段,並且必須是IP廣播(UDP)可到達的

Ø         集羣中的所有Server必須使用相同的版本,包括Service Pack

Ø         集羣中的Server必須使用永久的靜態IP地址。動態IP地址分配不能用於集羣環境。如果服務器位於防火牆後面,而客戶機位於防火牆外面,那麼服務器必須有公共的靜態IP地址,只有這樣,客戶端才能訪問服務器

Ø         要以CLUSTER方式運行,必須有包含CLUSTER許可的LICENSE才行(從Bea網站上下載的試用版本就可以進行Cluster配置)

配置前的準備工作

在配置集羣應用前要對集羣的配置信息有一個良好的設計,下面就是我們這次配置的集羣信息:

在同一網段內的不同機器上配置集羣

機器類型

操作系統

硬件配置

角色

備註

PC

Win2003 Server

IP:90.0.12.20 PORT:7001

Administrator Server

 管理服務

PC

Win2003 Server

IP:90.0.12.20 PORT:8080

Proxy Server

 代理服務

 PC

Win2003 Server

IP:90.0.12.20 PORT:7082

Managed Server

 受管理服務

PC

Win2003 Server

IP:90.0.12.112 PORT:7084

Managed Server

 受管理服務

 

硬件配置中90.0.12.20,與90.0.12.112分別是兩臺不同的機器,集羣也可以配置在同一臺機器中。

Weblogic安裝以及集羣配置的操作

使用Domain Configuration Wizard進行配置

創建新的Domain

       選擇“Toolà Configuration Wizard”,單擊“下一步”按鈕

選擇安裝域源

       選擇安裝“WebLogic Server”,單擊“下一步”按鈕

 

配置管理員用戶名和密碼

       輸入Weblogic管理員管理服務器(AdminServer)的用戶名和密碼,在此以“weblogic”作用登錄管理服務器的用戶名和密碼,單擊“下一步”按鈕

 

配置域啓動模式和JDK

       選擇“生產模式”和“JRockt SDK”後,單擊“下一步”按鈕

 

選擇是否自定義環境和服務設置

       選擇“是”後,單擊“下一步”按鈕

 

配置管理服務器

       輸入Administrator Server的名稱,監聽地址,監聽端口,如果需要SSL支持的話可以在“SSL enabled”後面的複選取框上打勾,配置SSL監聽端口,單擊“下一步”按鈕

 

配置受管理服務器(代理服務器實際上也是一個受管理服務器)

       輸入Managed Server的名稱,監聽地址,監聽端口,如果需要SSL支持的話,可以在“SSL enabled”複選框上打勾,配置SSL監聽端口。可以配置多個Managed Server。單擊“下一步”按鈕

(注:我這臺機的IP是:90.0.12.20,另一臺機上要安裝受管理服務器的IP地址是:90.0.12.112)

配置羣集信息

       單擊“切換顯示”,再單擊“添加”,輸入Cluster的名稱,Multicast address組播地址(這個做什麼用暫不明白),Cluster的組播地址和端口,Cluster地址可輸可不輸。單擊“下一步”按鈕

將“受管理服務器”添加到“集羣”中

       選擇左面列表中的Managed Server,將其添加到右面的列表中,這裏代理服務器不要添加到右邊,單擊“下一步”按鈕

創建HTTP代理應用程序

       選中“爲羣集創建Http代理”,myCluster代理服務器選擇前面沒有加入myCluster的ProxyServer,單擊“下一步”按鈕

配置計算機

       在此不對計算機進行配置,單擊“下一步”按鈕

 

檢查Weblogic域

       在此檢查前面所做的配置,如果沒有問題單擊“下一步”按鈕

創建Weblogic域

       輸入要創建的域名和位置,此處域名可輸入爲Clust_domain,輸入完成後單擊“創建”按鈕

正在創建域

       創建無誤後,單擊“完成”按鈕

編輯啓動WebLogic服務文件

Ø         編輯口令文件

在剛纔創建的域目錄下建立boot.properties文件,內容爲:

username=weblogic

password=weblogic

如果不創建CMD啓動服務時,都需要手動輸入用戶名和密碼

Ø         編輯啓動管理服務器的文件

在剛纔創建的域目錄下的bin目錄中創建startAdminServer.cmd,內容爲:

@ECHO OFF

@REM 啓動管理服務器.

start .\startWebLogic

Ø         編輯啓動代理服務器的文件

在剛纔創建的域目錄下的bin目錄中創建startProxyServer.cmd,內容爲:

@ECHO OFF

 

@REM 啓動代理服務器.

@REM 使用startManagedWeblogic命令啓動Managed Server,它的命令格式是:

@REM startManagedWeblogic.cmd Managed Server的名稱 Administrator Server地址

@REM startManagedWeblogic 受管理服務器名稱 管理服務器URL

 

start .\startManagedWebLogic ProxyServer http://90.0.12.20:7001

Ø         編輯啓動受管理服務器(ManagedServer_1)的文件

在剛纔創建的域目錄下的bin目錄中創建startManagedServer_1.cmd,內容爲:

@ECHO OFF

 

@REM 啓動受管理服務器ManagedServer_1.

@REM 啓動Managed Server

@REM 使用startManagedWeblogic命令啓動Managed Server,它的命令格式是:

@REM startManagedWeblogic.cmd Managed Server的名稱 Administrator Server地址

@REM startManagedWeblogic 受管理服務器名稱 管理服務器URL

 

start .\startManagedWebLogic ManagedServer_1 http://90.0.12.20:7001

 

(注:使用startManagedWeblogic命令啓動Managed Server,它的命令格式是:

startManagedWeblogic.cmd Managed Server的名稱 Administrator Server地址)

在其它機器上配置受管理服務器

一.     按默認情況安裝Weblogic 9.2

二.     點擊“開始à所有程序à BEA ProductsàToolsà Configuration Wizard”啓動Weblogic域配置嚮導,按默認選擇,直接單擊“下一步”

三.     選擇域源

按默認選擇,單擊“下一步”

四.     配置管理員用戶名和密碼

輸入管理員的用戶名和密碼,這裏爲:用戶名-weblogic,密碼-weblogic,完成後單擊“下一步”

 

五.     配置服務器啓動模式和JDK

這裏選擇“生產模式”,JDK選擇“JRockit JDK”,完成後單擊“下一步”。

六.     生定義環境和服務設置

這裏選擇“是”,完成後單擊“下一步”。

 

七.     配置管理服務器

輸入本機的管理服務器名稱和地址以及端口號,完成後單擊“下一步”。

八.     配置受管理服務器

這是一是重點,在這裏設置的受管理服務器名稱和IP地址以及端口號要與羣集服務器上設置的一致,完成後單擊“下一步”。

九.     配置集羣

這裏也與羣集服務器配置不同,在這裏不做任何處理直接單擊“下一步”。

因爲當前pc上的受管理服務器已被前面集羣受管理

一〇.            配置計算機

這一步我們也不做處理,直接單擊“下一步”。

一一.            檢查Weblogic域

檢查你做的配置是否正確,完成後單擊“下一步”。

一二.            創建Weblogic域

輸入要創建的Weblogic域名稱,這裏使用MultiIP_domain,完成後單擊“創建”。

一三.            正在創建域

稍等待創建完成後單擊“完成”。

一四.            編輯啓動文件

在剛纔創建的域目錄下的bin目錄中創建startManagedServer_2.cmd,內容爲:

@ECHO OFF

 

@REM 啓動受管理服務器ManagedServer_2.

@REM 啓動Managed Server

@REM 使用startManagedWeblogic命令啓動Managed Server,它的命令格式是:

@REM startManagedWeblogic.cmd Managed Server的名稱 Administrator Server地址

@REM startManagedWeblogic 受管理服務器名稱 管理服務器URL

 

start .\startManagedWebLogic ManagedServer_2 http://90.0.12.20:7001

 

啓動WebLogic服務

在集羣服務器上所創建的域的bin中做如下操作。

Ø         雙擊“startAdminServer.cmd”啓動管理服務器

Ø         雙擊“startProxyServer.cmd”啓動代理服務器

Ø         雙擊“startManagedServer_1.cmd”啓動管理服務器1

 

在其它受管理服務器的bin目錄下做如下操作。

Ø         雙擊“startManagedServer_2.cmd”啓動受管理服務器2(注意:中間會要你輸入管理域的用戶名和密碼),啓動完成後會看到如下屏幕

部署WEB應用

       進入Console控制檯(http://90.0.12.7001/console)。

       進入console控制檯後,在左邊域結構樹中點擊“環境”前的“+”,

 

在展開的菜單中點擊“服務器”,在右邊的列表中可以看到各服務器是否正常啓動。

      

       如果正常啓動則單擊“部署”,再單擊“鎖定編輯”, 再單擊“安裝”,選擇要部署的WEB應用程序

完成後,單擊“下一步”,再單擊“下一步”,

選擇羣集“myCluster”,再選擇“羣集中的所有服務器”,之後單擊“下一步”,再單擊“下一步”,再單擊“完成”。再單擊左上角的“激活更改”。

啓動WEB應用

進入Console控制檯(http://90.0.12.7001/console)。

進入console控制檯後,點擊“部署”

選中列表中的應用,然後選擇“爲所有請求提供服務”,再單擊“是”。

看到狀態是“活動”就表示WEB應用啓動完成。

注意BEAProxy4_myCluster_ProxyServer ,代理服務web應用是weblogic自帶的程序,需要修改web.xml,和weblogic.xml。

Web.xml

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

       <servlet>

              <servlet-name>HttpClusterServlet</servlet-name>

              <servlet-class>

                     weblogic.servlet.proxy.HttpClusterServlet

              </servlet-class>

              <init-param>

                     <param-name>WebLogicCluster</param-name>

                     <param-value>

             90.0.12.20 :7082|90.0.12.112:7084

                     </param-value>

              </init-param>

              <init-param>

                     <param-name>DebugConfigInfo</param-name>

                     <param-value>ON</param-value>

              </init-param>

              <init-param>

                     <param-name>verbose</param-name>

                     <param-value>true</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>*.htm</url-pattern>

       </servlet-mapping>

 

       <servlet-mapping>

              <servlet-name>HttpClusterServlet</servlet-name>

              <url-pattern>*.html</url-pattern>

       </servlet-mapping>

</web-app>

 

注意<param-value>元素的值是對應受管理服務的IP和port 如果多個IP必須用“|”分隔。千萬不要把90.0.12.20 :7001也配置進去。

測試集羣的分發功能

編寫測試WEB應用並部署

       我們來編寫一個簡單的WEB應用,它會在控制檯和瀏覽器上同時打印出“OK”字樣,然後將這個WEB應用部署到集羣中所有Managed Server上面。(代碼見附件)

       在這裏我們將通過Apache中所帶的ab包來進行併發訪問的模擬測試,使用如下的命令就可以完成壓力測試。

       ab –n 100 –c 10 http://90.0.12.20:8080/index.jsp

       ab是測試程序的名稱

       參數n代表請求的總數量

       參數c代表併發的請求數

       url爲要測試壓力的頁面

注:使用這個命令時,一定要在系統路徑中能夠找到該程序,否則不能執行。

       壓力測試完成後,我們從Managed Server的控制檯上可以看到,ManagedServer_1,ManagedServer_2都打印出了“OK”字樣,這說明,在併發請求的情況下,集羣能夠將請求進行分發,以達到負載平衡的目的。

Session共享問題測試

一.     編輯Weblogic.xml配置文件放到WEB應用程序的WEB-INF目錄下,內容如下:

<?xml version="1.0" encoding="UTF-8"?>

<wls:weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">

<session-descriptor>    

<persistent-store-type>replicated</persistent-store-type>

<sharing-enabled>true</sharing-enabled>

</session-descriptor>

<wls:context-root>/</wls:context-root>

</wls:weblogic-web-app>

 

注意 如果replicated發部不成功換成memory,因爲在9.2的版本中replicated無效。8.1版本可以用。

二.     在IE地址欄中輸入http://90.0.12.20:8080/main.jsp並回車,可以看到只有一個weblogic受管理服務器上打出了“OK”,前且可以看到頁面上是顯示是未登錄狀態。這時不要並閉IE,再在地址欄中輸入http://90.0.12.20:8080/login.htm,以用戶名:kxq,密碼:kxq,登錄,這裏頁面上你會看到已是登錄狀態,這時你可以隨便關閉或打開ManagedServer_1或ManagedServer_2測試,只要保持有一個ManagedServer是啓動狀態,你的頁面都會是登錄狀態。

三.     Session保持測試 在main,jsp中代碼  如果session.set 一個屬性爲空,那麼設置一個值,否則輸出該值。

測試結果:如果http://90.0.12.20:8080/main.jsp, 通過代理連接到20的7082上,那麼session爲空,該屬性設置一個值,這時再把20 7082關閉,那次連接http://90.0.12.20:8080/main.jsp,  這時頁面結果顯示在20 7082上屬性的值那麼session保持測試成功。

集羣配置中要注意的問題

Ø         Admin Server只用於集羣的管理,而不能參與集羣事務。

Ø         Web應用應該部署到集羣上,文件的同步是由WebLogic來完成的

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章