jboss的集群策略分析

jboss的集群策略分析

ID:9506516

大?。?7.00 KB

頁數(shù):12頁

時(shí)間:2018-05-01

jboss的集群策略分析_第1頁
jboss的集群策略分析_第2頁
jboss的集群策略分析_第3頁
jboss的集群策略分析_第4頁
jboss的集群策略分析_第5頁
資源描述:

《jboss的集群策略分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、JBOSS的集群策略分析  序言  在閱讀本文前,請(qǐng)確定您有以下基礎(chǔ),否則您可能會(huì)是在浪費(fèi)您的時(shí)間:  1、了解J2EE的一些基本概念  2、了解集群的基本概念  3、對(duì)JBOSS有一些大致的了解,可到.jboss.org上下載它?! BOSS是一個(gè)開放源碼的、基于J2EE規(guī)范的應(yīng)用服務(wù)器,它實(shí)現(xiàn)了大多數(shù)的J2EE規(guī)范,除此之外,它還提供了一些J2EE中所沒有涉及到的企業(yè)級(jí)功能,例如集群。本文主要描述JBOSS采取的集群策略,并重點(diǎn)介紹它的負(fù)載平衡與失效轉(zhuǎn)發(fā)機(jī)制?! ∮捎贘BOSS是一個(gè)建立在J2EE規(guī)范上的應(yīng)用服務(wù)器,

2、因此在開始之前,我們還是簡(jiǎn)單地介紹一下J2EE規(guī)范:J2EE是一套針對(duì)于企業(yè)級(jí)分布式應(yīng)用的計(jì)算環(huán)境,它定義了動(dòng)態(tài)S),名稱和目錄定位服務(wù)(JNDI),數(shù)據(jù)庫訪問(JDBC),與子系統(tǒng)的連接器(JCA),安全服務(wù)等等。  但美中不足的是J2EE并沒有定義一些企業(yè)級(jí)應(yīng)用所必須的規(guī)范,例如集群,所以集群的實(shí)現(xiàn)只能由各廠商自行來設(shè)計(jì)實(shí)現(xiàn)。要實(shí)現(xiàn)基于J2EE規(guī)范的集群,我們通常要做如下考慮:集群的管理、負(fù)載平衡、失效轉(zhuǎn)發(fā)、服務(wù)端狀態(tài)的復(fù)制(例如JSP中的session),還要考慮同步和異步的問題(例如JMS服務(wù)就是異步方式)。如果要

3、對(duì)這些內(nèi)容做一個(gè)全面的闡述的話,估計(jì)可以寫成一本書了:) 因此本文主要探討的是:怎樣實(shí)現(xiàn)無狀態(tài)EJB的負(fù)載平衡與失效轉(zhuǎn)發(fā)機(jī)制?  1999年,MarcFleury建立了JBOSS開源項(xiàng)目,現(xiàn)在它有差不多100個(gè)活躍的開發(fā)者,30個(gè)核心開發(fā)者,每月高達(dá)35萬次的下載量,它當(dāng)前的最高穩(wěn)定版是3.2版,4.0版正在穩(wěn)定之中,自從JBOSS3.0開始就加入了集群技術(shù),幾乎能對(duì)任何J2EE規(guī)范進(jìn)行集群管理,如JNDI、JSP中的session、EJB等等。更令人振奮的是,即將發(fā)行的JBOSS4.0將會(huì)對(duì)JMS也加入集群管理特色。  

4、EJB集群在JBOSS中的實(shí)現(xiàn)  下面言歸正傳,上圖大致描述了一個(gè)客戶端調(diào)用JBOSS中的EJB的過程。在JBOSS中,客戶端并不直接調(diào)用EJB對(duì)像,而采用了一個(gè)迂回的方法,更專業(yè)的說是一種設(shè)計(jì)模式――代理模式,真正與客戶端交互的是一個(gè)代理對(duì)像①,這個(gè)代理對(duì)像一般由客戶端通過JNDI技術(shù)來取得的。而具體的代理對(duì)像的實(shí)現(xiàn)就由各廠商自完成了,在JBOSS中,一個(gè)代理對(duì)像是一段精心設(shè)計(jì)的復(fù)雜代碼?! 〉诳蛻舳丝磥?,調(diào)用一個(gè)代理對(duì)像好像就是在調(diào)用那個(gè)實(shí)際的EJB對(duì)像,雖然事實(shí)并非如此。在這里JBOSS耍了一個(gè)小把戲,代理對(duì)像雖然

5、實(shí)現(xiàn)了與EJB對(duì)像相同的接口,但它實(shí)際上是把客戶端對(duì)它的調(diào)用轉(zhuǎn)發(fā)到了它在服務(wù)端的另一個(gè)伙伴身上②,同時(shí),這個(gè)伙伴同樣定義了客戶端所要求的一些EJB接口,當(dāng)這些接口被調(diào)用時(shí)③,精彩的部分開始了,JBOSS把客戶端發(fā)過來的各種各樣不同的調(diào)用全部轉(zhuǎn)換成為一個(gè)統(tǒng)一格式的接口④(在本文中我們暫且稱客戶端發(fā)出的調(diào)用為應(yīng)用級(jí)接口,而JBOSS生成的統(tǒng)一格式的接口稱為系統(tǒng)級(jí)接口)。當(dāng)轉(zhuǎn)換完成后,所有的應(yīng)用級(jí)接口變成了系統(tǒng)級(jí)接口⑤。為了能更清楚地闡述這個(gè)問題,我們假設(shè)客戶端向EJB對(duì)像發(fā)出如下調(diào)用:myRemoteponent.increa

6、seSalary(100); //myRemoteponent為代理對(duì)像  這個(gè)調(diào)用實(shí)際上被JBOSS轉(zhuǎn)換成了如下的系統(tǒng)級(jí)調(diào)用:proxyClientContainer.invoke(invocation);//proxyClientContainer為代理對(duì)像在服務(wù)端的另一個(gè)伙伴  但這個(gè)invocation到底是什么呢?實(shí)際上它是類Invocation的一個(gè)實(shí)例,這里有它的一個(gè)簡(jiǎn)單的說明:publicclassInvocation{ Object[]args;//應(yīng)用級(jí)接口中的一些參數(shù) Methodmethod;//被

7、調(diào)用的應(yīng)用級(jí)接口 Mappayload;//JBOSS就是在這里采取的負(fù)載平衡策略的 }  當(dāng)應(yīng)用級(jí)接口被轉(zhuǎn)換成為了系統(tǒng)級(jí)接口之后,它將經(jīng)過一系列的攔截器(⑥至⑦)。在這里我首先要說明一下什么是攔截器,實(shí)際上,它是JBOSS中獨(dú)具特色的一個(gè)設(shè)計(jì)思路,一個(gè)攔截器就好像是一張過濾網(wǎng),它用來對(duì)客戶端的調(diào)用進(jìn)行攔截,并對(duì)其進(jìn)行一些處理,比如檢查客戶端調(diào)用的合法性、實(shí)現(xiàn)安全策略、對(duì)事務(wù)進(jìn)行支持等。值得一提的是,JBOSS的集群管理也是通過攔截器來實(shí)現(xiàn)的,更令人欣慰的是,JBOSS的設(shè)計(jì)者并沒有將這個(gè)攔截器固化在其核心內(nèi),而是采用一種

8、插件式(plug-in)的方法來設(shè)計(jì),因此你只要實(shí)現(xiàn)它的插件接口,你甚至可以寫出自己的攔截器來,當(dāng)然,這已不屬于本文的討論范圍之內(nèi)了?! ∵@里(⑥至⑦)的每個(gè)攔載器將順序地?cái)r截invocation,它們都具有如下的集群管理方面的能力:  1、分析invocation的內(nèi)容和任務(wù)?! ?、加入一些信息到i

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。