weblogic的集羣與配置

目錄(?)[-]

1.Weblogic的集羣
2.建立Weblogic集羣前的規劃
3.開始建立咱們的Weblogic集羣
1.1 建立集羣的總控制端aminserver
2.2 建立集羣中的節點mycluster1 mycluster2
3.3 如何啓動集羣
4.jdbc集羣
5.把工程佈署到集羣環境中去
6.使用Apache與Weblogic集羣整合
7.JMS集羣
目錄

 

本文轉摘於;http://blog.csdn.net/liuqiwen0512/article/details/7739421html

1、Weblogic的集羣

還記得咱們在第五天教程中講到的關於Tomcat的集羣嗎?node

 

兩個tomcat作node即tomcat1, tomcat2,使用Apache HttpServer作請求派發。web

如今看看WebLogic的集羣吧,其實也差很少。apache

 

區別在於:tomcat

  1. Tomcat的集羣的實現爲兩個物理上不一樣的tomcat,分別就是兩個node,沒有總控端,沒有任何控制檯可言(只有經過比較簡陋的http://localhost:8080/manager/html,或者是http://localhost:9090/manager/html)來對每一個tomcat節點進行監視(此處只有monitor沒有control);

    若是咱們要佈署咱們的Web應用,須要分別手工往每一個Tomcatwebapp目錄裏拷貝文件。服務器

  1. Weblogic的集羣必須設立一個總控端,可從上圖中看出,而後這個總控端咱們把它稱爲AdminServer,而後在其下能夠掛weblogic的集羣的node,這個node不是物理上不一樣的兩個weblogic,而是不一樣的domain,咱們假設domain1, domain2爲兩個weblogic的集羣的節點。

    若是咱們要佈署咱們的Web應用,只須要在總控端佈署一次,而後掛在這個總控端下的節點將會自動將咱們的web應用發佈到每個節點。session

  所以,要實現weblogic的集羣必須:app

  • 安裝Weblogic
  • 建立一個AdminServer的domain
  • 在AdminServer上創建集羣總控端
  • 分別建立每個要加入此集羣總控端的node,也是一個個的domain

2、建立Weblogic集羣前的規劃

根據第一節中的內容,咱們將咱們用於實驗的Weblogic規劃成3個domain,每一個domain都包含有下列的必不可少的屬性:dom

  • AdminConsole(總控端)

    邏輯名webapp

    物理名(domain的系統路徑)

    端口號

    計器名(IP)

    登陸信息(username/password)

  • Cluster node1(集羣節點1)

    邏輯名

    物理名(domain的系統路徑)

    端口號

    計器名(IP)

    登陸信息(username/password)

  • Cluster node2(集羣節點2)

    邏輯名

    物理名(domain的系統路徑)

    端口號

    計器名(IP)

    登陸信息(username/password)

  咱們用表格列出咱們將要建立的集羣中總控端與每一個節點的集息:

物理名

邏輯名

端口號

主機名(IP

登陸信息

\bea\user_projects\domains\adminserver

AdminServer

7001

localhost

weblogic/password_1

\bea\user_projects\domains\server1

mycluster1

7011

localhost

weblogic/password_1

bea\user_projects\domains\server2

mycluster2

7012

localhost

weblogic/password_1

  規劃好了,就能夠開始來建立咱們的集羣了。

3、開始建立咱們的Weblogic集羣

3.1 建立集羣的總控制端(aminserver)

  Windows:

  Windows下經過菜單->OracleWeblogic->Weblogic Server 11gR1->Tools->Configuration Wizard來啓動建立domain的wizard。

 

  Unix/Linux:

  Unix/Linux下經過

cd /bea/wlserver/common/bin

./config.sh

  來啓動建立domain的wizard。

 

  選擇「建立新的Weblogic域」,選下一步(下面所有跟着個人操做步驟與界面填選的參數走,全部的用戶名啦、密碼啦、端口號啦、IP啦,都請根據第一節中的那個表格裏的參數填寫

 

  下一步後界面相似,可是是有區別的,注意了哦,不要下手太快了

 

  上面這個配的就叫集羣廣播地址的界面。

  由於集羣是經過廣播(有unicast和multicast兩種)來同步集羣中的節點,而且把每一個節點中的session經過這個廣播地址來進行復制和同步,即主控域不斷的時時刻刻的會和它下面的子節點間保持通信、常常去詢問各個子節點的。

  • 名稱:能夠任意
  • 集羣信息傳送模式:有unitcast與multicast兩種,在11G版本前都是multicast10G後開始支持unicast協議。若是指定了multicast,就必須指定一個「多點傳送地址」,此地址和端口均可以採用weblogic默認的。

  若是在域環境,還須要在防火牆中配置這個「多點傳送地址」與「多點傳送端口」,使其在防火牆中被打開,協議爲both of tcp and udp。

 

  Look, 右邊這塊咱們把它稱爲「集羣的邏輯拓卜圖」。

 

  此處是對每一個集羣裏的節點指定相應的「計算機名/IP」,因爲咱們的實驗是創建在同一臺機器上的即縱向集羣,所以這步什麼都不須要填,直接下一步

 

  完成後能夠啓動adminserver

 

  而後經過http://localhost:7001/console來查看咱們的集羣規劃,以下圖:

 

  這樣,咱們就完成了建立一個新的domain而且將且擴展成爲了集羣的總控制端服務器,同時在這上面咱們製做了一個「集羣拓卜圖」,那麼下面要作的就是:

  • 建立該集羣拓卜圖中的節點1
  • 建立該集羣拓卜圖中的節點2

3.2 建立集羣中的節點(mycluster1, mycluster2)

  啓動Weblogic的Configuration Wizard

  按照普通的域,就是一個普通的域來建立(爲了實驗方便咱們的用戶名與密碼所有爲weblogic/password_1):

  • user_projects\domains\server1(邏輯名爲:mycluster1,端口:7011)
  • user_projects\domains\server2(邏輯名爲:mycluster2,端口:7012)

 

  下一步,下一步,建立,完成。

  依上面的相同步驟能夠自行建立server2(邏輯名爲mycluster2,端口:7012)。

 

3.3 如何啓動集羣

物理名

邏輯名

端口號

主機名(IP

登陸信息

\bea\user_projects\domains\adminserver

AdminServer

7001

localhost

weblogic/password_1

\bea\user_projects\domains\server1

mycluster1

7011

localhost

weblogic/password_1

bea\user_projects\domains\server2

mycluster2

7012

localhost

weblogic/password_1

 

  咱們看着上面這個表格來輸入命令吧:

  1. 啓動主控域(必須永遠先啓動主控域)

 

  2.  啓動節點1(間點間的啓動順序無所謂

 

  3. 啓動節點2(間點間的啓動順序無所謂

 

  所有啓動完畢後就能夠經過主控制域的admin console即http://localhost:7001/console來管理這個集羣了。

 

4、jdbc集羣

 

  有了集羣,咱們就能夠佈署咱們的JDBC了,只是這個JDBC的佈署和之前單機版的JDBC佈署稍稍有點不同,前面咱們引用第八天中的創建JDBC的步驟:

 

 

  好好好,停,到了這邊,不同的地方來了。

 

  嘿嘿,千萬不要把這個JDBC鏈接池的「target」即做用域設錯了哈,咱們如今是集羣,要把這個JDBC鏈接池的做用域設在咱們的集羣上的哈!

 

  咱們來測試一下咱們創建的數據源吧。

 

  兩個cluster上的數據源所有部署成功。

  這邊再提一句:

  集羣佈署的話AdminServer只是一個控制器,經過它佈署的war程序是自動同步到掛在它下面的全部的節點中去的,所以JDBC數據源,或者JMS或者是EJB都要在綁定是把target即做用域設成cluster而不是AdminServer自己,由於AdminServer自己不會佈署任何任何東西的。

5、把工程佈署到集羣環境中去

  • 確保咱們將要佈署的工程中的web.xml的最後一行含有:

<distributable/>

  •  在將要佈署的工程的WEB-INF目錄下新建一個weblogic.xml的文件,其內容以下:

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

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">

<session-descriptor>

<debug-enabled>true</debug-enabled>

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

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

</session-descriptor>

<context-root>/cbbs</context-root>

</weblogic-web-app>

  該內容使得你的工程能夠在Weblogic集羣環境下進行Session複製。

而後就能夠開始佈署了

 

  下面又來了,和在集羣中佈署JDBC是同樣的,請看:

 

  下一步,下一步一直到[完成]按鈕亮起來後,點[完成]。

 

  點[保存]並[激活更改]。

  你們來看看兩個clustermycluster1mycluster2下是否被佈署了工程,即至關於咱們手工要在兩個tomcat節點的webapps目錄裏拷入咱們的WAR工程,而weblogic只須要經過主控制域,自動將war工程佈署在其下的全部子節點內。

 

  是的,果真,它自動佈署了。就算我下面有10幾個子節點,它也同樣只須要在AdminServer上佈署一次,自動同步。

  咱們把這個工程啓動起來吧。

 

  當你一點「爲全部請求提供服務,再來看兩個字節點的後臺console,均可以同步啓動了:

 

  佈署成功

 

  打開兩個IE:

  一個輸入: http://localhost:7011/cbbs

  一個輸入: http://localhost:7012/cbbs

 

  Weblogic集羣佈署成功,接下去就是在Apache裏進行派發了

6、使用Apache與Weblogic集羣整合

  打開httpd.conf,把下面這段就是咱們在「第九天」中加入的,去掉:

LoadModule weblogic_module modules/mod_wl_22.so

<IfModule mod_weblogic.c>

   WebLogicHost localhost

   WebLogicPort 7001

   MatchExpression /cbbs/WEB-INF

   MatchExpression /cbbs/*WEB-INF

   MatchExpression /cbbs/*.action

   MatchExpression /cbbs/servlet/*

   MatchExpression /cbbs/*.jsp

   MatchExpression /cbbs/*fckeditor/editor/filemanager/connectors/*.*

   MatchExpression /cbbs/fckeditor/editor/filemanager/connectors/*

   WLLogFile logs/wlproxy.log

</IfModule>

  換成下面這一段

LoadModule weblogic_module modules/mod_wl_22.so

<IfModule mod_weblogic.c>

   Include conf/weblogic.conf

</IfModule>

  而後在apache安裝的conf目錄下手工創建weblogic.conf文件,其內容以下:

WeblogicCluster localhost:7011,localhost:7012

  

MatchExpression /cbbs/WEB-INF

MatchExpression /cbbs/*WEB-INF

MatchExpression /cbbs/*.action

MatchExpression /cbbs/servlet/*

MatchExpression /cbbs/*.jsp

MatchExpression /cbbs/*fckeditor/editor/filemanager/connectors/*.*

MatchExpression /cbbs/fckeditor/editor/filemanager/connectors/*

 

  重啓你的Apache,輸入:http://localhost/cbbs/index.jsp

 

  Apache加Weblogic集羣,搞定!

7、JMS集羣

  這是我在用Weblogic集羣佈署PEGA Rulz的詳細步驟,供各爲參考。由於網上關於JMS在Weblogic下如何做集羣不是太多,所以把步驟記錄下來Share給你們。

  JMS集羣和JDBC集羣不同,就是不可以直接創建JMS源,而後把它target到咱們的myclusterbroadcast上去

  • 而是須要分別爲每一個cluster單獨建一個jms的server以下圖。

 

  • 而後創建jmsmodule

 

  將module 的做用範圍即target到咱們的cluster(myclusterbroadcast)上去。

  創建完了module你就要創建topic, queue以及相應的topic connection factory或者是queue connectionfactory了是吧?由於咱們這邊給PEGA Rulz作集羣用的是topic方式來發布集羣的,所以咱們以topic爲例,queue的創建也就同樣了。

  • 單擊剛纔咱們創建的KTJmsModule

 

  點[New]

  先建connection factory

 

  • 在新建connectionfactory的界面中有一個[高級定位]的按鈕

 

  • 點[新建子部署]

    填入完子佈署的名稱後,按照以下圖來「target」

 

  點完成後跳出以下的界面

 

  此時咱們能夠開始真正創建咱們的topic或者是queue了

  前面說了不可以直接創建JMS源,而後把它target到咱們的myclusterbroadcast上去。那麼咱們要對JMS進行集羣即對Topic或者是Queue進行集羣,可是咱們能夠創建一個Distribute Topic,而後分別建兩個一邊的topic,一個topic連向jmsserver1一個topic連向jmsserver2,而後把這個Distribute Topic定位(Target)到這兩條topic上便是咱們的「集羣下的jms topic」。

在jmd module裏點[新建]按鈕

選擇「主題」(不是分佈式主題)

 

  每一個子部署(sub deployment)須要定位(target)到一個jms server上。

依此分別創建:

  • topic1 subtop1->jmsserver1
  • topic2 subtop2->jmsserver2

  如今,咱們的jms module裏的內容因該以下圖所示:

 

  • 創建 「分佈式主題」(DistributeTopic)

  在jms module裏點新建按鈕,選「分佈式主題」

 

  必定要記得把「Destination Type」改爲「Weighted」。

  這邊的分佈式Topic的JNDI Name: 就是咱們真正的須要用來作集羣的JMS的Topic或者是Queue的jndi名,好比說個人產品PEGA Rulz須要在集羣環境下用到RamTopicJNDI,這個JNDI Name就必須填產品說明書上的那個Topic或者是Queue的名字哦。

點下一步後將剛纔兩個新建的topic所有分配給這個distribute topic

 

  點[完成]按鈕

  這樣,一個集羣環境下的JMS分佈式主題(Topic)就全建完了,最後不要忘了點左邊菜單上方的「激活更改」,保存您剛纔的全部的更改。

相關文章
相關標籤/搜索