天天看點

weblogic的叢集與配置

weblogic的叢集與配置
weblogic的叢集與配置
目錄(?)[-]

1.Weblogic的叢集
2.建立Weblogic叢集前的規劃
3.開始建立我們的Weblogic叢集
1.1 建立叢集的總控制端aminserver
2.2 建立叢集中的節點mycluster1 mycluster2
3.3 如何啟動叢集
4.jdbc叢集
5.把工程布署到叢集環境中去
6.使用Apache與Weblogic叢集整合
7.JMS叢集      
weblogic的叢集與配置

本文轉摘于;javascript:void(0)

一、Weblogic的叢集

還記得我們在第五天教程中講到的關于Tomcat的叢集嗎?

weblogic的叢集與配置

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

現在看看WebLogic的叢集吧,其實也差不多。

weblogic的叢集與配置

差別在于:

  1. Tomcat的叢集的實作為兩個實體上不同的tomcat,分别就是兩個node,沒有總控端,沒有任何控制台可言(隻有通過比較簡陋的http://localhost:8080/manager/html,或者是http://localhost:9090/manager/html)來對每個tomcat節點進行監視(此處隻有monitor沒有control);

    如果我們要布署我們的Web應用,需要分别手工往每個Tomcat的webapp目錄裡拷貝檔案。

  1. Weblogic的叢集必須設立一個總控端,可從上圖中看出,然後這個總控端我們把它稱為AdminServer,然後在其下可以挂weblogic的叢集的node,這個node不是實體上不同的兩個weblogic,而是不同的domain,我們假設domain1, domain2為兩個weblogic的叢集的節點。

    如果我們要布署我們的Web應用,隻需要在總控端布署一次,然後挂在這個總控端下的節點将會自動将我們的web應用釋出到每一個節點。

  是以,要實作weblogic的叢集必須:

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

二、建立Weblogic叢集前的規劃

根據第一節中的内容,我們将我們用于實驗的Weblogic規劃成3個domain,每個domain都包含有下列的必不可少的屬性:

  • AdminConsole(總控端)

    邏輯名

    實體名(domain的系統路徑)

    端口号

    計器名(IP)

    登入資訊(username/password)

  • Cluster node1(叢集節點1)
  • Cluster node2(叢集節點2)

  我們用表格列出我們将要建立的叢集中總控端與每個節點的集息:

實體名 邏輯名 端口号 主機名(IP) 登入資訊
\bea\user_projects\domains\adminserver AdminServer 7001 localhost weblogic/password_1
\bea\user_projects\domains\server1 mycluster1 7011
bea\user_projects\domains\server2 mycluster2 7012

  規劃好了,就可以開始來建立我們的叢集了。

三、開始建立我們的Weblogic叢集

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

  Windows:

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

weblogic的叢集與配置

  Unix/Linux:

  Unix/Linux下通過

cd /bea/wlserver/common/bin

./config.sh

  來啟動建立domain的wizard。

weblogic的叢集與配置

  選擇“建立新的Weblogic域”,選下一步(下面全部跟着我的操作步驟與界面填選的參數走,所有的使用者名啦、密碼啦、端口号啦、IP啦,都請根據第一節中的那個表格裡的參數填寫)

weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置

  下一步後界面類似,但是是有差別的,注意了哦,不要下手太快了

weblogic的叢集與配置

  上面這個配的就叫叢集廣播位址的界面。

  因為叢集是通過廣播(有unicast和multicast兩種)來同步叢集中的節點,并且把每個節點中的session通過這個廣播位址來進行複制和同步,即主要域不斷的時時刻刻的會和它下面的子節點間保持通訊、經常去詢問各個子節點的。

  • 名稱:可以任意
  • 叢集資訊傳送模式:有unitcast與multicast兩種,在11G版本前都是multicast10G後開始支援unicast協定。如果指定了multicast,就必須指定一個“多點傳送位址”,此位址和端口都可以采用weblogic預設的。

  如果在域環境,還需要在防火牆中配置這個“多點傳送位址”與“多點傳送端口”,使其在防火牆中被打開,協定為both of tcp and udp。

weblogic的叢集與配置
weblogic的叢集與配置

  Look, 右邊這塊我們把它稱為“叢集的邏輯拓蔔圖”。

weblogic的叢集與配置

  此處是對每個叢集裡的節點指定相應的“計算機名/IP”,由于我們的實驗是建立在同一台機器上的即縱向叢集,是以這步什麼都不需要填,直接下一步。

weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置

  完成後可以啟動adminserver

weblogic的叢集與配置

  然後通過http://localhost:7001/console來檢視我們的叢集規劃,如下圖:

weblogic的叢集與配置

  這樣,我們就完成了建立一個新的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)
weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置

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

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

weblogic的叢集與配置

3.3 如何啟動叢集

  我們看着上面這個表格來輸入指令吧:

  1. 啟動主要域(必須永遠先啟動主要域)

weblogic的叢集與配置

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

weblogic的叢集與配置

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

weblogic的叢集與配置

  全部啟動完畢後就可以通過主要制域的admin console即http://localhost:7001/console來管理這個叢集了。

weblogic的叢集與配置

四、jdbc叢集

  有了叢集,我們就可以布署我們的JDBC了,隻是這個JDBC的布署和以前單機版的JDBC布署稍稍有點不一樣,前面我們引用第八天中的建立JDBC的步驟:

weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置
weblogic的叢集與配置

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

weblogic的叢集與配置

  嘿嘿,千萬不要把這個JDBC連接配接池的“target”即作用域設錯了哈,我們現在是叢集,要把這個JDBC連接配接池的作用域設在我們的叢集上的哈!

weblogic的叢集與配置

  我們來測試一下我們建立的資料源吧。

weblogic的叢集與配置

  兩個cluster上的資料源全部部署成功。

  這邊再提一句:

  叢集布署的話AdminServer隻是一個控制器,通過它布署的war程式是自動同步到挂在它下面的所有的節點中去的,是以JDBC資料源,或者JMS或者是EJB都要在綁定是把target即作用域設成cluster而不是AdminServer本身,因為AdminServer本身不會布署任何任何東西的。

五、把工程布署到叢集環境中去

  • 確定我們将要布署的工程中的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複制。

然後就可以開始布署了

weblogic的叢集與配置
weblogic的叢集與配置

  下面又來了,和在叢集中布署JDBC是一樣的,請看:

weblogic的叢集與配置

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

weblogic的叢集與配置

  點[儲存]并[激活更改]。

  大家來看看兩個cluster即mycluster1與mycluster2下是否被布署了工程,即相當于我們手工要在兩個tomcat節點的webapps目錄裡拷入我們的WAR工程,而weblogic隻需要通過主要制域,自動将war工程布署在其下的所有子節點内。

weblogic的叢集與配置

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

  我們把這個工程啟動起來吧。

weblogic的叢集與配置

  當你一點“為所有請求提供服務,再來看兩個位元組點的背景console,都可以同步啟動了:

weblogic的叢集與配置

  布署成功

weblogic的叢集與配置

  打開兩個IE:

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

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

weblogic的叢集與配置

  Weblogic叢集布署成功,接下去就是在Apache裡進行派發了

六、使用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>

  換成下面這一段

   Include conf/weblogic.conf

  然後在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

weblogic的叢集與配置

  Apache加Weblogic叢集,搞定!

七、JMS叢集

  這是我在用Weblogic叢集布署PEGA Rulz的詳細步驟,供各為參考。因為網上關于JMS在Weblogic下如何作叢集不是太多,是以把步驟記錄下來Share給大家。

  JMS叢集和JDBC叢集不一樣,就是不能夠直接建立JMS源,然後把它target到我們的myclusterbroadcast上去。

  • 而是需要分别為每個cluster單獨建一個jms的server如下圖。
weblogic的叢集與配置
  • 然後建立jmsmodule
weblogic的叢集與配置
weblogic的叢集與配置

  将module 的作用範圍即target到我們的cluster(myclusterbroadcast)上去。

  建立完了module你就要建立topic, queue以及相應的topic connection factory或者是queue connectionfactory了是吧?因為我們這邊給PEGA Rulz做叢集用的是topic方式來釋出叢集的,是以我們以topic為例,queue的建立也就一樣了。

  • 單擊剛才我們建立的KTJmsModule
weblogic的叢集與配置

  點[New]

  先建connection factory

weblogic的叢集與配置
  • 在建立connectionfactory的界面中有一個[進階定位]的按鈕
weblogic的叢集與配置
weblogic的叢集與配置
  • 點[建立子部署]

    填入完子布署的名稱後,按照如下圖來“target”

weblogic的叢集與配置

  點完成後跳出如下的界面

weblogic的叢集與配置

  此時我們可以開始真正建立我們的topic或者是queue了

  前面說了不能夠直接建立JMS源,然後把它target到我們的myclusterbroadcast上去。那麼我們要對JMS進行叢集即對Topic或者是Queue進行叢集,但是我們可以建立一個Distribute Topic,然後分别建兩個一邊的topic,一個topic連向jmsserver1一個topic連向jmsserver2,然後把這個Distribute Topic定位(Target)到這兩條topic上即是我們的“叢集下的jms topic”。

在jmd module裡點[建立]按鈕

選擇“主題”(不是分布式主題)

weblogic的叢集與配置
weblogic的叢集與配置

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

依此分别建立:

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

  現在,我們的jms module裡的内容因該如下圖所示:

weblogic的叢集與配置
  • 建立 “分布式主題”(DistributeTopic)

  在jms module裡點建立按鈕,選“分布式主題”

weblogic的叢集與配置

  一定要記得把“Destination Type”改成“Weighted”。

  這邊的分布式Topic的JNDI Name: 就是我們真正的需要用來做叢集的JMS的Topic或者是Queue的jndi名,比如說我的産品PEGA Rulz需要在叢集環境下用到RamTopicJNDI,這個JNDI Name就必須填産品說明書上的那個Topic或者是Queue的名字哦。

點下一步後将剛才兩個建立的topic全部配置設定給這個distribute topic

weblogic的叢集與配置
weblogic的叢集與配置

分類: 中間件