面向j2ee的負(fù)載平衡技術(shù)_第1頁
面向j2ee的負(fù)載平衡技術(shù)_第2頁
面向j2ee的負(fù)載平衡技術(shù)_第3頁
面向j2ee的負(fù)載平衡技術(shù)_第4頁
面向j2ee的負(fù)載平衡技術(shù)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

面向j2ee的負(fù)載平衡技術(shù)

1靈活性和高靈活性隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)軟件的伸縮性和可用性得到了越來越多的關(guān)注。負(fù)載平衡和容錯是這兩個問題的典型解決方案。隨著操作系統(tǒng)或網(wǎng)絡(luò)層負(fù)載平衡的廣泛應(yīng)用,支持負(fù)載平衡的中間件服務(wù)形式的問題越來越普遍。與在操作系統(tǒng)或網(wǎng)絡(luò)層實(shí)現(xiàn)負(fù)載平衡相比,在中間件層實(shí)現(xiàn)負(fù)載平衡的優(yōu)勢在于它提供了很大的靈活性,這主要體現(xiàn)在應(yīng)用(負(fù)載)類型上。目前,j2ue和corba(基于應(yīng)用的負(fù)載平衡器)等主導(dǎo)中間件的技術(shù)提供了支持負(fù)載平衡的需求,并提供了各種負(fù)載平衡算法和負(fù)載計量標(biāo)準(zhǔn)的選擇。然而,傳統(tǒng)的實(shí)現(xiàn)僅支持單個負(fù)載平衡點(diǎn)和負(fù)載平衡粒度,并不能適應(yīng)不同的應(yīng)用環(huán)境。本文首先討論了j2e平臺上的負(fù)載平衡的一些問題,分析了不同負(fù)載平衡策略的各自應(yīng)用,然后詳細(xì)描述了產(chǎn)品化應(yīng)用服務(wù)器apk阿什的實(shí)現(xiàn)。PKUAS是一種符合J2EE1.3規(guī)范的反射式構(gòu)件運(yùn)行支撐平臺.PKUAS基于JMX實(shí)現(xiàn)了微內(nèi)核的體系結(jié)構(gòu),支持四類容器系統(tǒng)(無態(tài)會話容器、有態(tài)會話容器、實(shí)體容器和消息驅(qū)動容器)與三種互操作協(xié)議(IIOP(InternetInter-OrbProtocol)、JRMP(JavaRemotemethodProtocol)與SOAP(SimpleObjectAccessProtocol)),并內(nèi)置了命名服務(wù)、安全服務(wù)、事務(wù)服務(wù)、日志服務(wù)、數(shù)據(jù)連接服務(wù)與集群服務(wù).2實(shí)現(xiàn)負(fù)載平衡的方案J2EE平臺以集群的形式同時為負(fù)載平衡與容錯提供支持.J2EE集群由一組應(yīng)用服務(wù)器組成,透明地為客戶提供企業(yè)級服務(wù).集群又稱為組,這是因?yàn)榧阂话闶褂媒M通信進(jìn)行成員管理,并保持各節(jié)點(diǎn)狀態(tài)的同步.這里所說的狀態(tài)既包括實(shí)現(xiàn)負(fù)載平衡需要的對象(引用)的副本,也包括實(shí)現(xiàn)容錯所需的會話狀態(tài)等.為支持企業(yè)級計算,J2EE平臺采用了分層的體系結(jié)構(gòu).相應(yīng)的,可以在不同層上實(shí)現(xiàn)負(fù)載平衡:(1)Web層的負(fù)載平衡常見方案有:(a)DNS輪循法,即由DNS服務(wù)器維護(hù)域名與一組(集群內(nèi)節(jié)點(diǎn)的)IP地址的映射,對于每一個域名解析請求,DNS服務(wù)器依次選擇列表中的下一個IP地址返回;(b)硬件負(fù)載均衡器法,即整個集群對外而言只有一個IP地址(即均衡器的地址),所有請求都發(fā)往該地址,由均衡器根據(jù)選定的負(fù)載平衡算法轉(zhuǎn)發(fā)請求;(c)Web服務(wù)器代理法,即由Web服務(wù)器(可以實(shí)現(xiàn)為HTTP服務(wù)器上的插件)或部署于其上的Web應(yīng)用實(shí)現(xiàn)對Servlet/JSP請求的負(fù)載平衡.(2)EJB(EnterpriseJavaBeans)層的負(fù)載平衡由J2EE應(yīng)用服務(wù)器通過增強(qiáng)命名服務(wù)與通信服務(wù)實(shí)現(xiàn)對EJB及公共服務(wù)(如JNDI(JavaNamingandDirectoryInterface)、JDBC(JavaDataBaseConnectivity)、JMS(JavaMessageService)等)的負(fù)載平衡.(3)數(shù)據(jù)層的負(fù)載平衡一些數(shù)據(jù)庫供應(yīng)商提供數(shù)據(jù)庫集群產(chǎn)品,支持不同數(shù)據(jù)庫服務(wù)器間的數(shù)據(jù)復(fù)制,透明(相對于使用數(shù)據(jù)庫的Web服務(wù)器與EJB服務(wù)器)地實(shí)現(xiàn)了JDBC連接在不同數(shù)據(jù)庫節(jié)點(diǎn)間的負(fù)載平衡.本文主要關(guān)注EJB層的負(fù)載平衡.2.1對象引用與執(zhí)行流程EJB層的負(fù)載平衡決策可以在不同位置做出,如負(fù)載均衡器、應(yīng)用服務(wù)器(JNDI命名服務(wù)器、容器等)以及客戶代理(homestub與remotestub)等.由負(fù)載均衡器轉(zhuǎn)發(fā)請求的方案(圖1)有明顯的缺陷.首先,為了避免單點(diǎn)失效與性能瓶頸,一般都使用幾個負(fù)載均衡器.然而即便如此,仍然不能避免所有均衡器均失效而導(dǎo)致系統(tǒng)癱瘓(即使服務(wù)節(jié)點(diǎn)仍可用)的情況.此外由于每次請求都需由均衡器轉(zhuǎn)發(fā),不可避免的會帶來性能開銷.為了克服上述缺點(diǎn),本文提出了一種由命名服務(wù)實(shí)現(xiàn)負(fù)載平衡的方案(圖2).命名服務(wù)維護(hù)了JNDI名與一組對象引用(或客戶代理)的映射,在執(zhí)行查找請求時根據(jù)一定的負(fù)載平衡算法選擇一個特定于某個節(jié)點(diǎn)的對象引用返回給客戶.由于命名服務(wù)位于集群的每個節(jié)點(diǎn)上,一般不會出現(xiàn)上述的第一種情況.同時由于無需第三方轉(zhuǎn)發(fā)請求,因而降低了性能開銷.當(dāng)然,由此帶來的一個問題是僅能支持較粗粒度的負(fù)載平衡(見2.2節(jié)).這種方案的優(yōu)點(diǎn)是實(shí)現(xiàn)比較簡單,運(yùn)行時刻開銷小.此外,由于命名服務(wù)比較容易獲取全局信息(如各節(jié)點(diǎn)的負(fù)載狀況),因而易于實(shí)現(xiàn)動態(tài)負(fù)載平衡算法.服務(wù)器端負(fù)載平衡還可由容器或通信服務(wù)中的接收器實(shí)現(xiàn),但這種做法進(jìn)一步加重了服務(wù)器的負(fù)擔(dān),一般很少采用.上述兩種方案的共同之處是由服務(wù)器實(shí)現(xiàn)負(fù)載平衡(負(fù)載均衡器也應(yīng)視為一種服務(wù)器),這意味著隨著客戶數(shù)量的增加,服務(wù)器用于負(fù)載平衡的開銷也會相應(yīng)增加.對于以事務(wù)處理為主的應(yīng)用領(lǐng)域(如CORBA應(yīng)用),由于并發(fā)客戶數(shù)較少且客戶請求的處理時間較長(因而負(fù)載平衡開銷所占的比例較小),這類方案是合適的.而對于基于Web的應(yīng)用領(lǐng)域,常常需要面對大量客戶,并且所處理的多為交互式請求,則需要考慮降低服務(wù)器用于負(fù)載平衡的開銷.正是由于上述原因,由客戶代理轉(zhuǎn)發(fā)請求(圖3)成為J2EE平臺上最廣泛采用的實(shí)現(xiàn)機(jī)制.客戶代理維護(hù)了一組對象引用,其內(nèi)封裝了部署了相應(yīng)EJB或提供相應(yīng)服務(wù)的一組節(jié)點(diǎn)的地址.每次方法調(diào)用中,客戶代理根據(jù)選定的負(fù)載平衡算法及其它信息(如各節(jié)點(diǎn)的負(fù)載)選擇一個對象引用,向相應(yīng)的節(jié)點(diǎn)發(fā)出請求.這種實(shí)現(xiàn)機(jī)制的優(yōu)點(diǎn)是(1)具有較好的可伸縮性.由于負(fù)載平衡開銷主要由客戶負(fù)擔(dān),服務(wù)器無需考慮由于客戶數(shù)量增加引起的負(fù)載平衡開銷的增加;(2)支持細(xì)粒度的負(fù)載平衡(見2.2小節(jié)).然而,客戶代理需要從服務(wù)器獲取必要的信息以及細(xì)粒度負(fù)載平衡都意味著運(yùn)行時刻開銷的增加.此外,需要為每一種互操作協(xié)議開發(fā)支持負(fù)載平衡的客戶代理也意味著實(shí)現(xiàn)難度的增加.考慮到2、3兩種方案各有特定的適用環(huán)境,PKUAS同時實(shí)現(xiàn)了兩種方案.本文將在第三部分詳細(xì)描述實(shí)現(xiàn)細(xì)節(jié).2.2ejb負(fù)載平衡粒度客戶使用EJB的一次典型流程如圖4所示.首先,客戶從命名服務(wù)查找home對象,得到其客戶代理(homestub).而后客戶通過homestub調(diào)用home對象的create方法,創(chuàng)建一個remote對象,得到remote對象的客戶代理(remotestub).最后客戶通過remotestub調(diào)用remote對象的某個方法,完成實(shí)際的業(yè)務(wù)操作.本文認(rèn)為,對于EJB而言存在以下三種負(fù)載平衡粒度:(1)查找級(perlookup)向一個home對象以及該home對象創(chuàng)建的所有remote對象發(fā)出的請求都由一個固定的節(jié)點(diǎn)處理,僅支持同一個EJB的不同home對象及不同EJB的負(fù)載平衡.其效果可由上述的命名服務(wù)轉(zhuǎn)發(fā)請求實(shí)現(xiàn),故名.(2)會話級(persession)向home對象發(fā)出的不同請求可以負(fù)載平衡,而向remote對象發(fā)出的請求則始終由創(chuàng)建該對象的節(jié)點(diǎn)處理.有態(tài)會話構(gòu)件一般只能做到這一級,故名.(3)請求級(perrequest)home與remote對象的請求都可以負(fù)載平衡.一般只有無態(tài)會話構(gòu)件與只讀實(shí)體構(gòu)件能做到這一級.盡管會話狀態(tài)復(fù)制為有態(tài)會話構(gòu)件的請求級負(fù)載平衡提供了支持,但是考慮到性能開銷,在實(shí)際應(yīng)用中會話狀態(tài)復(fù)制一般僅用于需要支持容錯的情況.從級別1到級別3,負(fù)載平衡粒度逐漸變細(xì).一般來說,粒度越細(xì),負(fù)載平衡效果越好,但運(yùn)行時開銷也越大.2.1小節(jié)提到的方案2支持查找級,方案3支持會話級與請求級.本文將在第三部分描述這三種負(fù)載平衡粒度在PKUAS中的實(shí)現(xiàn)與定制方法.2.3動態(tài)算法與靜態(tài)加權(quán)根據(jù)決策時是否使用運(yùn)行時刻的信息(如各節(jié)點(diǎn)的負(fù)載狀況),負(fù)載平衡算法可以分為靜態(tài)算法與動態(tài)算法兩大類.靜態(tài)算法不使用運(yùn)行時刻的信息,常用的靜態(tài)算法有輪循、隨機(jī)及靜態(tài)加權(quán)算法等幾種.其中輪循與隨機(jī)算法適合于所有節(jié)點(diǎn)處理能力相當(dāng)?shù)那闆r.靜態(tài)加權(quán)算法適合于節(jié)點(diǎn)處理能力不同的情況.動態(tài)算法也稱為適應(yīng)性算法,根據(jù)運(yùn)行時的系統(tǒng)狀態(tài)信息做出負(fù)載平衡決策.理論上,動態(tài)算法具有更大的靈活性,其實(shí)際效果則依賴于所選擇的負(fù)載分發(fā)策略、負(fù)載度量標(biāo)準(zhǔn)以及運(yùn)行時數(shù)據(jù)的獲取.目前主流的J2EE應(yīng)用服務(wù)器一般只支持靜態(tài)算法,而CORBA產(chǎn)品則大都支持動態(tài)算法.這同樣與兩類中間件主要面向不同類型的應(yīng)用有關(guān).目前,PKUAS僅支持三種靜態(tài)負(fù)載平衡算法,并且支持在運(yùn)行時刻替換缺省的負(fù)載平衡算法.3負(fù)載平衡機(jī)制在ppp的實(shí)現(xiàn)中的實(shí)現(xiàn)3.1pkuas負(fù)載平衡如前文所述,J2EE平臺上的負(fù)載平衡涉及到許多相關(guān)的策略(不同的負(fù)載平衡點(diǎn)、負(fù)載平衡粒度以及算法),這些策略各有其特定的適用環(huán)境.為了同時支持多種策略并允許客戶根據(jù)實(shí)際需要加以選擇,PKUAS實(shí)現(xiàn)了一個可靈活定制的負(fù)載平衡框架.PKUAS負(fù)載平衡建立在PKUAS互操作框架與JGroups提供的組通信服務(wù)之上.JGroups是基于Java的開源組通信中間件,被廣泛運(yùn)用于各種J2EE平臺的開源實(shí)現(xiàn)中.JGroups提供了可靠有序的組通信、組成員管理以及組內(nèi)RPC等特性.在此基礎(chǔ)之上,PKUAS實(shí)現(xiàn)了集群服務(wù)、全局命名服務(wù),并在針對IIOP互操作協(xié)議的客戶代理中增加了對負(fù)載平衡的支持,從而實(shí)現(xiàn)了上述的兩種方案.目前,PKUAS僅支持使用RMI/IIOP互操作協(xié)議的EJB的負(fù)載平衡.3.2基于rpc的集群攔截集群服務(wù)負(fù)責(zé)在PKUAS啟動時加入組,監(jiān)聽JGroups發(fā)出的消息以及進(jìn)行消息轉(zhuǎn)發(fā)等.集群服務(wù)允許其它服務(wù)注冊所關(guān)心的消息,并在收到消息時通知相應(yīng)服務(wù).其它服務(wù)可以通過集群服務(wù)發(fā)出組內(nèi)RPC調(diào)用,從而實(shí)現(xiàn)組內(nèi)節(jié)點(diǎn)的狀態(tài)同步.為了使EJB容器可以在方法調(diào)用前后對集群服務(wù)進(jìn)行必要的控制,在PKUAS現(xiàn)有的截取器鏈中增加了集群截取器.目前,集群截取器僅在調(diào)用返回前完成兩項工作:從集群服務(wù)獲得當(dāng)前視圖id,插入調(diào)用上下文中;對于返回remote對象的home方法,從構(gòu)件元數(shù)據(jù)獲取remote接口的負(fù)載平衡策略,并將其封裝為對象引用的一部分.3.3全局命名服務(wù)在PKUAS中,命名服務(wù)維護(hù)了JNDI名字與IOR(Inter-OperableobjectReference)(可互操作對象引用)的映射,而全局命名服務(wù)則維護(hù)了所有需要負(fù)載平衡的EJB(及RMI對象)的JNDI名字與一組IOR的映射.對于EJB,PKUAS會在應(yīng)用部署時刻為其生成home接口的IOR,并將IOR綁定到本地命名服務(wù)上,對于需要負(fù)載平衡的EJB則還會將其綁定到全局命名服務(wù)上.全局命名服務(wù)通過集群服務(wù)將名字信息組播到組內(nèi)其它節(jié)點(diǎn)上,以保持狀態(tài)同步.在查找過程中,如果全局命名服務(wù)在自身維護(hù)的綁定信息中找不到相應(yīng)的對象引用,則首先將請求轉(zhuǎn)發(fā)給本地命名服務(wù),如果仍然查找不到,則通過集群服務(wù)將請求轉(zhuǎn)發(fā)給組內(nèi)其它節(jié)點(diǎn)的全局命名服務(wù).當(dāng)?shù)弥硞€節(jié)點(diǎn)失效時(由集群服務(wù)通知),全局命名服務(wù)將屬于該節(jié)點(diǎn)的名字信息刪除.對于需要查找級負(fù)載平衡的構(gòu)件,全局命名服務(wù)在查找時根據(jù)一定的負(fù)載平衡算法選擇相應(yīng)的對象引用返回給客戶.對于需要會話級與請求級負(fù)載平衡的構(gòu)件,全局命名服務(wù)在查找時將對應(yīng)于JNDI名的一組僅含單個地址的IOR重組為一個含多個地址的IOR返回給客戶.3.4remotestbub實(shí)現(xiàn)PKUAS實(shí)現(xiàn)了開放的互操作框架,自主開發(fā)了符合IIOP規(guī)范的RMI-IIOP互操作協(xié)議.為了實(shí)現(xiàn)在IOR內(nèi)封裝多個節(jié)點(diǎn)的地址與端口號,引入了標(biāo)準(zhǔn)IOR組件TAG-ALTERNATE-IIOP-ADDRESS.對于需要會話級與請求級負(fù)載平衡的構(gòu)件,全局命名服務(wù)返回一個包含此組件的IOR給客戶,保存在homestub中.Homestub在創(chuàng)建remote對象的方法中將自身維護(hù)的地址列表復(fù)制到remotestub中.為了實(shí)現(xiàn)2.2小節(jié)所述的各級負(fù)載平衡,stub需要對IOR中的地址列表進(jìn)行不同的處理.對于會話級負(fù)載平衡,homestub的每次方法調(diào)用可以選擇地址列表中的不同地址,remotestub則僅使用創(chuàng)建該對象的home方法所用的地址;對于請求級負(fù)載平衡,homestub與remotestub都可以使用不同的地址.為了實(shí)現(xiàn)請求轉(zhuǎn)發(fā),stub必須獲得特定于該對象的負(fù)載平衡策略與其它相關(guān)信息,考慮到IIOP規(guī)范中并無相應(yīng)的標(biāo)準(zhǔn)組件,引入了自定義IOR組件TAG-LOADBALANCE-POLICY.其內(nèi)封裝了負(fù)載平衡粒度、算法、組成員視圖id以及各節(jié)點(diǎn)的靜態(tài)權(quán).負(fù)載平衡算法與各節(jié)點(diǎn)的靜態(tài)權(quán)分別來自部署描述文件與服務(wù)配置文件(見3.6小節(jié)).組成員視圖id從調(diào)用上下文獲得.當(dāng)stub發(fā)現(xiàn)當(dāng)前的視圖id與自身保存的id值不一致時,將從全局命名服務(wù)獲取包含了最新節(jié)點(diǎn)地址列表的IOR,從而避免了不必要的容錯開銷.3.5驗(yàn)證認(rèn)證信息PKUAS安全服務(wù)支持“單次登錄”(SingleSignon):客戶在執(zhí)行首次EJB業(yè)務(wù)操作前,要到認(rèn)證服務(wù)器顯式登錄一次,認(rèn)證服務(wù)器為客戶分配一個令牌作為臨時身份憑證,并將該令牌加入自身維護(hù)的一個緩存中.以后客戶的每次請求都將攜帶該令牌,由安全截取器調(diào)用認(rèn)證服務(wù)檢查令牌的合法性.在集群環(huán)境中,由于客戶的每次請求可能由不同節(jié)點(diǎn)處理,為了保持“單次登錄”的特色,認(rèn)證信息需要在集群范圍內(nèi)共享.為此將認(rèn)證服務(wù)注冊到集群服務(wù)中,當(dāng)新的令牌加入緩存或原有令牌失效時,通過組內(nèi)RPC維護(hù)各節(jié)點(diǎn)認(rèn)證信息的同步.具體來說,當(dāng)客戶在某個節(jié)點(diǎn)登錄后,該節(jié)點(diǎn)的認(rèn)證服務(wù)為客戶分配一個令牌并加入自身的緩存,同時通過組內(nèi)RPC將該令牌加入組內(nèi)其它節(jié)點(diǎn)的認(rèn)證服務(wù)緩存中.而后攜帶該令牌的客戶可以在組內(nèi)的任意節(jié)點(diǎn)上通過身份認(rèn)證,而無需重新登錄.3.6部署和關(guān)閉負(fù)載平衡服務(wù)PKUAS基于微內(nèi)核的體系結(jié)構(gòu)允許對服務(wù)進(jìn)行靈活定制.就負(fù)載平衡而言,用戶可以選擇使用或者不使用負(fù)載平衡,可以選擇不同的負(fù)載平衡粒度和負(fù)載平衡算法.目前,除缺省的負(fù)載平衡算法可以在運(yùn)行時刻設(shè)置外,其它配置工作需要在部署時刻完成.下文將依次加以說明.管理員可以通過修改PKUAS的服務(wù)配置文件來啟動或關(guān)閉負(fù)載平衡服務(wù).客戶可以通過使用不同的客戶代理(由代理生成器自動生成)以及命名服務(wù)(本地或全局)以決定是否使用負(fù)載平衡服務(wù).部署人員可以在特定于應(yīng)用的部署描述文件中為每個EJB指定負(fù)載平衡策略,如圖5所示.其中負(fù)載平衡算法是可選允許管理員在運(yùn)行時刻對一些配置參數(shù)進(jìn)行調(diào)整.對集群服務(wù)而言,管理員可以從管理界面看到節(jié)點(diǎn)的靜態(tài)權(quán)、組名等信息,并可調(diào)整缺省負(fù)載平衡算法,從而使負(fù)載平衡服務(wù)對環(huán)境的變化具備一定的適應(yīng)性.3.7負(fù)載平衡機(jī)制的響應(yīng)時間節(jié)拍測試1與測試2評估了上述框架對單個節(jié)點(diǎn)的響應(yīng)時間產(chǎn)生的影響.測試環(huán)境如下:兩臺配置為P42.4G,512M內(nèi)存的DellPC,其中一臺作為服務(wù)器,安裝了RedHat9操作系統(tǒng),一臺作為客戶端,安裝了WindowsXP操作系統(tǒng).節(jié)點(diǎn)間通過100Mbps以太網(wǎng)聯(lián)接.測試用例是一個簡單的無態(tài)會話EJB和一個standalone的Java客戶程序.該EJB接受客戶傳來的一個字符串,并將其直接返回給客戶.該EJB部署在單個服務(wù)節(jié)點(diǎn)上,home與remote接口都使用輪循算法.客戶程序依次向服務(wù)器發(fā)送不同字節(jié)數(shù)的字符串(各1萬次,以避免測試結(jié)果的隨機(jī)性),并記錄響應(yīng)時間.三條曲線分別代表關(guān)閉負(fù)載平衡、命名服務(wù)轉(zhuǎn)發(fā)請求(查找級)與客戶代理轉(zhuǎn)發(fā)請求(請求級)三種情況.在測試1中,客戶僅在程序開始運(yùn)行時調(diào)用JNDI命名服務(wù).在測試2中,客戶在每次調(diào)用前都進(jìn)行查找與創(chuàng)建工作.圖6與圖7分別給出了兩種情況下的測試結(jié)果.當(dāng)選擇命名服務(wù)作為負(fù)載平衡點(diǎn)時,負(fù)載平衡機(jī)制引起的響應(yīng)時間開銷僅存在于每次查找過程中,可以看到其影響是比較小的(對于一次查找、多次調(diào)用的情況幾乎可以忽略不計).當(dāng)選擇客戶代理作為負(fù)載平衡點(diǎn)時,由于每次調(diào)用都需要運(yùn)行負(fù)載平衡算法分派請求,對響應(yīng)時間有一定影響.4webgos和webgists負(fù)載平衡當(dāng)前主流的應(yīng)用服務(wù)器都提供了對負(fù)載平衡的支持.考慮到J2EE應(yīng)用的特點(diǎn),大多數(shù)實(shí)現(xiàn)(如JBoss、JOnAS與WebLogic等)均選取客戶代理作為負(fù)載平衡點(diǎn).JBoss作為當(dāng)前最成功的開源應(yīng)用服務(wù)器為負(fù)載平衡與容錯提供了全面支持.JBoss集群使用JGroups作為底層的組通信基礎(chǔ)設(shè)施,實(shí)現(xiàn)了集群服務(wù)、高可用命名服務(wù)以及特定于JRMP互操作協(xié)議的客戶代理及相關(guān)設(shè)施.與PKUAS相比,JBoss負(fù)載平衡的優(yōu)點(diǎn)在于支持分布熱部署,即僅需在集群的一個節(jié)點(diǎn)上部署需要負(fù)載平衡的構(gòu)件,熱部署過程自動將該構(gòu)件部署到集群的所有節(jié)點(diǎn)上.此外,JBoss3.2以上版本支持代理族(ProxyFamily).同一個EJB接口的位于同一個JVM內(nèi)的所有客戶代理組成一個代理族,可在其內(nèi)共享一些信息(如視圖id,地址列表等),從而使集群動態(tài)變化時客戶代理的更新工作得以簡化,并為某些特殊的負(fù)載平衡策略提供了支持.其不足之處在于,由于home與remote接口的客戶代理各自獨(dú)立地實(shí)施負(fù)載平衡算法,JBoss不能支持查找級與會話級負(fù)載平衡(有態(tài)會話構(gòu)件除外).此外,JBoss不支持運(yùn)行時刻修改缺省的負(fù)載平衡算法.作為當(dāng)前最成功的商業(yè)應(yīng)用服務(wù)器產(chǎn)品之一,WebLogic提供了功能更強(qiáng)大的集群服務(wù).與PKUAS相比,WebLogic除支持2.3小節(jié)所述的三

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論