http://dev2dev.bea.com.cn/techdoc/webser/2005030102.html
集群BEA WebLogic Server 訪問(wèn)BEA WebLogic Server 集群 DNS負(fù)載均衡技術(shù) 代理服務(wù)器 使用BEA WebLogic Server作為Web服務(wù)器 使用BEA WebLogic Server作為負(fù)載均衡代理 與第三方Web服務(wù)器集成 硬件負(fù)載均衡器 WAN集群 Web集群 用代理Web服務(wù)器的故障切換 用負(fù)載均衡硬件的故障切換 對(duì)象集群 無(wú)狀態(tài)會(huì)話EJB 有狀態(tài)會(huì)話EJB 實(shí)體bean 全部集群的JNDI樹(shù) JMS集群 JDBC元池(metapool)集群 BEA WebLogic Server實(shí)例如何在網(wǎng)絡(luò)上通信 配置和管理BEA WebLogic 集群 配置集群 用節(jié)點(diǎn)管理器(Node Manager)自動(dòng)管理 結(jié)束語(yǔ) BEA簡(jiǎn)介
摘要
BEA WebLogic Server?通過(guò)它的無(wú)與倫比的集群技術(shù)為電子商務(wù)提供所需的可伸縮性和24×7的可用性。集群指的是:在業(yè)務(wù)關(guān)鍵型系統(tǒng)內(nèi),為了分配負(fù)載和消除單點(diǎn)故障而將服務(wù)器分組的若干方法。集群實(shí)現(xiàn)冗余,通過(guò)Web技術(shù)和對(duì)象集群自動(dòng)將故障切換到備份服務(wù)器或者對(duì)象實(shí)例、保持有狀態(tài)對(duì)象的狀態(tài),以及更新JDNI樹(shù)和復(fù)制感知的占位程序。如果硬件或者軟件出現(xiàn)故障,客戶機(jī)訪問(wèn)被透明地轉(zhuǎn)移到工作的服務(wù)器或者對(duì)象的復(fù)制品。集群對(duì)它的客戶機(jī)而言,就像是單一的“超級(jí)”服務(wù)器,通過(guò)惟一的URL訪問(wèn)。在集群內(nèi)部,服務(wù)器通過(guò)IP多播通信,通過(guò)DNS負(fù)載均衡、硬件負(fù)載均衡器或者代理服務(wù)器支持簡(jiǎn)單的Web訪問(wèn)模型。BEA WebLogic集群技術(shù)是該行業(yè)內(nèi)最先進(jìn)的,它為客戶提供最高級(jí)別的可伸縮性和業(yè)務(wù)關(guān)鍵型Web應(yīng)用程序的可靠性。
概述
Internet已經(jīng)提高了可靠性標(biāo)準(zhǔn)。用戶愈加期盼“dial tone”式的服務(wù)質(zhì)量,24×7的可用性和即時(shí)性。人們無(wú)法接受直接影響業(yè)務(wù)關(guān)鍵型客戶或者業(yè)務(wù)合作伙伴的故障。基礎(chǔ)架構(gòu)必須保證高可靠性,以便向企業(yè)提供不間斷的服務(wù)。
在當(dāng)今動(dòng)態(tài)的業(yè)務(wù)環(huán)境中,企業(yè)必須能夠動(dòng)態(tài)地提高能力以滿足需求。支持這種應(yīng)用程序的基礎(chǔ)結(jié)構(gòu)必須具備高度可伸縮性,在不必改變硬件或者軟件的情況下,就能夠無(wú)限制的增長(zhǎng)。
現(xiàn)在,企業(yè)使用Java應(yīng)用服務(wù)器,特別是占據(jù)領(lǐng)先地位的BEA WebLogic Server,來(lái)為客戶的自服務(wù)、供應(yīng)鏈和分配信道管理、交易、轉(zhuǎn)帳、物資供應(yīng)和許多其他服務(wù)開(kāi)發(fā)和部署高度可伸縮和極其可靠的任務(wù)關(guān)鍵型應(yīng)用程序。在BEA WebLogic Server上的部署覆蓋了所有行業(yè),包括電訊(AT&T、Qwest和Verizon)、衛(wèi)生保健(Aetna、Blue Cross/Blue Shield和Oxford Health Plan)、運(yùn)輸(United Airline、Delta Air Line和DHL Worldwide Express)和金融服務(wù)(Charles Schwab、American Express和Fidelity Investment)。
這些成功的客戶使BEA成為基礎(chǔ)架構(gòu)軟件的領(lǐng)頭羊,它擁有2100多個(gè)合作伙伴ISV、ASP和系統(tǒng)集成商,以及11000多家客戶。BEA WebLogic是行業(yè)內(nèi)最先進(jìn)的Java應(yīng)用服務(wù)器,一直贏得最高的市場(chǎng)份額,以及對(duì)J2EE和Web service技術(shù)的大力支持。
BEA WebLogic Server成功的關(guān)鍵之一是它已經(jīng)證明,通過(guò)卓越的集群能力,它能夠提供可伸縮性和高可用性。
集群BEA WebLogic Server TOP
BEA WebLogic Server集群由許多部署在網(wǎng)絡(luò)上的BEA WebLogic Server組成。集群服務(wù)器一起工作,提供比單臺(tái)服務(wù)器功能更強(qiáng)大、可靠性更高的應(yīng)用程序平臺(tái)。集群對(duì)于其客戶機(jī)來(lái)講是單臺(tái)服務(wù)器,但事實(shí)上,它是起著一臺(tái)“超級(jí)”服務(wù)器作用的一組服務(wù)器。
與單一服務(wù)器相比,BEA WebLogic集群有兩個(gè)主要優(yōu)點(diǎn):
- 可伸縮性——集群的能力不受某一單臺(tái)服務(wù)器或者單臺(tái)機(jī)器的限制。為了提高處理能力,可以動(dòng)態(tài)地將新的服務(wù)器添加到集群中。如果需要更多的硬件,可以在新機(jī)器上添加新的服務(wù)器。如果單一的服務(wù)器不能充分利用現(xiàn)有的機(jī)器,可以在該機(jī)器上添加其他的服務(wù)器。
- 高可用性——集群利用多臺(tái)服務(wù)器的冗余使客戶機(jī)與硬件或者軟件故障隔離開(kāi)。集群中的多臺(tái)服務(wù)器可以提供相同的服務(wù)。如果某臺(tái)服務(wù)器發(fā)生故障,另一臺(tái)服務(wù)器可以接管。從發(fā)生故障的服務(wù)器自動(dòng)切換到正在運(yùn)行的服務(wù)器的能力,可以保證對(duì)客戶機(jī)而言具有應(yīng)用程序的無(wú)縫可用性,而無(wú)需客戶機(jī)知道出現(xiàn)了問(wèn)題。
集群的其他特性:
特性 |
好處 |
沒(méi)有擴(kuò)展瓶頸 |
根據(jù)需要,可以很容易并且動(dòng)態(tài)地將新服務(wù)器添加到配置中,以滿足日益增加的用戶需求。此外,全部的請(qǐng)求負(fù)載在服務(wù)器間分配,以便保持充分利用資源。 |
單點(diǎn)故障不影響可用性 |
請(qǐng)求自動(dòng)地從失效的組件轉(zhuǎn)移到工作的組件。此外,還保護(hù)會(huì)話狀態(tài)以保證完全向用戶和應(yīng)用程序隱藏所發(fā)生的所有故障(例如服務(wù)器崩潰)。 |
對(duì)應(yīng)用程序和開(kāi)發(fā)人員的透明性 |
程序員不應(yīng)該處理復(fù)雜的復(fù)制、請(qǐng)求路由、負(fù)載均衡以及故障切換等。客戶可以購(gòu)買現(xiàn)成的應(yīng)用程序組件,這些組件可以透明地部署,而不用修改已集群的應(yīng)用程序服務(wù)器。 |
硬件和操作系統(tǒng)的無(wú)關(guān)性 |
BEA WebLogic Server集群可以在多種平臺(tái)上運(yùn)行 。由于與專用的平臺(tái)特性無(wú)關(guān),所以BEA WebLogic集群可以由各種系統(tǒng)組成,從運(yùn)行Microsoft Windows NT的Intel機(jī)器一直到大規(guī)模Unix多處理器和IBM OS/390大型機(jī)。 |
BEA WebLogic Server集群可以進(jìn)一步聚合在某個(gè)域內(nèi)——域指的是能夠由控制臺(tái)作為單一的邏輯安裝所管理的一組BEA WebLogic Server實(shí)例和/或者集群。如上所述,BEA WebLogic Server集群以對(duì)應(yīng)用程序開(kāi)發(fā)人員透明的方式向J2EE應(yīng)用程序提供可伸縮性和高可用性。但是,為了使應(yīng)用程序程序員和管理員最大限度地提高其應(yīng)用程序的可伸縮性和可用性,讓他們了解集群內(nèi)固有的問(wèn)題很重要。
BEA WebLogic Server有幾種形式的復(fù)雜的集群,分別是Web集群、對(duì)象集群、JMS(Java消息服務(wù))集群和JDBC連接池(元池)集群。
除了基本的集群功能之外,集群內(nèi)的BEA WebLogic Server實(shí)例可以與全局共享和復(fù)制的(全部集群)JNDI樹(shù)(Java命名和目錄接口)的組合相互配合,并在內(nèi)存中進(jìn)行Servlet和EJB會(huì)話狀態(tài)的復(fù)制。
訪問(wèn)BEA WebLogic Server集群 TOP
BEA WebLogic Server集群在客戶機(jī)看來(lái)是單一的服務(wù)器,可以使用簡(jiǎn)單的URL來(lái)尋址。 實(shí)際上,該URL必須映射到集群內(nèi)的多臺(tái)服務(wù)器,以保證連接請(qǐng)求可以在該集群內(nèi)負(fù)載均衡,并且可以透明地進(jìn)行故障切換。BEA WebLogic Server支持幾種實(shí)現(xiàn)這種簡(jiǎn)單訪問(wèn)模型的技術(shù):
- DNS負(fù)載均衡
- 代理服務(wù)器(BEA WebLogic代理,或者使用BEA WebLogic插件的第三方Web服務(wù)器)
- 硬件負(fù)載均衡器
DNS負(fù)載均衡 TOP
訪問(wèn)BEA WebLogic Server集群最簡(jiǎn)單的方法是使用映射到所有集群服務(wù)器的IP地址的單一DNS(域名系統(tǒng))名稱。當(dāng)一個(gè)DNS名稱映射到多個(gè)地址時(shí),DNS服務(wù)器將循環(huán)使用該列表,連續(xù)查找這個(gè)DNS名稱。這提供了一種簡(jiǎn)單的負(fù)載均衡和故障切換方式。每次客戶機(jī)解析URL,它都將得到循環(huán)的下一個(gè)地址。這樣可以保證客戶機(jī)連接均勻地在集群中得到均衡。如果某一客戶機(jī)請(qǐng)求失敗,客戶機(jī)可以通過(guò)再一次查找該名稱來(lái)故障切換該請(qǐng)求,并用新地址重新嘗試。對(duì)某些應(yīng)用程序而言,這是一種簡(jiǎn)單但足以解決問(wèn)題的方法。但是,它不具備其他解決方案可提供的性能和可管理水平。
代理服務(wù)器 TOP
訪問(wèn)集群的另一種方法是使用代理回該集群的其他Web服務(wù)器。代理服務(wù)器可以是含有BEA WebLogic Server的Web服務(wù)器,或者是具有BEA WebLogic 插件的Apache、Netscape或者M(jìn)icrosoft Web Server。
代理服務(wù)器被設(shè)置為將某些類型的請(qǐng)求重定向到支持它的服務(wù)器上。例如,可以配置代理服務(wù)器處理靜態(tài)HTML頁(yè)面請(qǐng)求,而將針對(duì)Servlet和Java Server Page的請(qǐng)求重定向到支持代理的BEA WebLogic集群。
代理服務(wù)器的作用類似于硬件負(fù)載均衡器,因?yàn)榇矸?wù)器執(zhí)行負(fù)載均衡、在支持它的集群中的多臺(tái)服務(wù)器之間分配請(qǐng)求。當(dāng)會(huì)話建立時(shí),它繼續(xù)代理該會(huì)話的所有請(qǐng)求到單一的服務(wù)器。如果該服務(wù)器發(fā)生故障,它將任務(wù)切換到副服務(wù)器。
使用 BEA WebLogic Server作為 Web Server TOP
BEA在BEA WebLogic Server中加進(jìn)了具有完全功能的HTTP服務(wù)器。因此,BEA WebLogic Server能夠作為完全集群解決方案中的主Web服務(wù)器。作為Web站點(diǎn),除繼續(xù)提供靜態(tài)HTML文件之外,還提供個(gè)性化的、動(dòng)態(tài)的內(nèi)容,人們可能期望看到更多的Web服務(wù)器被Web應(yīng)用服務(wù)器所替代。
用作Web服務(wù)器時(shí),高性能的BEA WebLogic Server支持最新的J2EE 1.3標(biāo)準(zhǔn),進(jìn)而為客戶提供了以下好處:
- 與大多數(shù)負(fù)載均衡硬件,以及最為廣泛使用的Web服務(wù)器(使用了所提供的插件)集成
- 與大多數(shù)Java虛擬機(jī)兼容
- 可伸縮性和高可用性的集群
- 跨集群的Servlet狀態(tài)復(fù)制
- Servlet自動(dòng)故障切換
- 支持Cookies
- Servlet轉(zhuǎn)發(fā)和鏈接
- JSP結(jié)果緩沖
- JSP標(biāo)簽庫(kù)
- 動(dòng)態(tài)部署
- 基于Web的管理和監(jiān)控
使用 BEA WebLogic Server作為負(fù)載均衡代理 TOP
BEA WebLogic Server可以作為負(fù)載均衡代理與BEA WebLogic 集群接合。就這一點(diǎn)而論,它可以提供負(fù)載分配、故障切換和其他的負(fù)載均衡器特性,以及處理Web請(qǐng)求的某些部分(例如,快速靜態(tài)頁(yè)面服務(wù))。作為代理,然后它可能將大多數(shù)請(qǐng)求重定向到支持它的集群。
圖1顯示了使用BEA WebLogic代理作為負(fù)載均衡器的第一種可能的BEA WebLogic集群配置。這種配置充分利用BEA WebLogic作為Web服務(wù)器。

圖1:BEA WebLogic代理作為BEA WebLogic Web Serve前面的負(fù)載均衡器
與第三方Web服務(wù)器集成 TOP
可以將BEA WebLogic Server與第三方Web服務(wù)器集成。Web服務(wù)器代理向使用BEA WebLogic Server 所供插件的BEA WebLogic Server代理請(qǐng)求。插件是為iPlanet (Netscape) Enterprise Server、Microsoft IIS和在指定平臺(tái)上的Apache準(zhǔn)備的。它設(shè)計(jì)用于第三方服務(wù)器處理靜態(tài)頁(yè)面的環(huán)境中。在這種情況下,動(dòng)態(tài)內(nèi)容(動(dòng)態(tài)頁(yè)面最好由HTTP Servlet或JSP生成)委托給BEA WebLogic Server ,它可能運(yùn)行在不同的進(jìn)程中或者在不同的主機(jī)上。對(duì)于最終用戶——瀏覽器來(lái)說(shuō),將HTTP請(qǐng)求委派給BEA WebLogic Server 看起來(lái)仍然是來(lái)自相同的源。
在這種情況下,代理插件也可以訪問(wèn)由BEA WebLogic Server所托管的業(yè)務(wù)組件(如圖2所示)。

圖2:BEA WebLogic代理插件連接BEA WebLogic Server
該配置使用戶可將其投資利用到第三方Web服務(wù)器中,從而提供到基于WebLogic Server的環(huán)境的平穩(wěn)過(guò)渡,同時(shí)支持與第三方服務(wù)器密切整合,并且支持BEA WebLogic本身的負(fù)載均衡和故障切換能力。
硬件負(fù)載均衡器 TOP
硬件負(fù)載均衡器克服了DNS方法的缺點(diǎn),它工作在IP級(jí)而不是在命名級(jí)。同時(shí),硬件負(fù)載均衡器比代理服務(wù)器所實(shí)現(xiàn)的軟件均衡器的性能更好。硬件負(fù)載均衡器相當(dāng)于集群的代理。客戶機(jī)連接到負(fù)載均衡器上,并且將該連接路由到支持它的集群服務(wù)器中的某一服務(wù)器。負(fù)載均衡硬件可以跟蹤每臺(tái)服務(wù)器的“可用狀態(tài)”,避免向“反常的”訪問(wèn)器發(fā)送請(qǐng)求。在其負(fù)載均衡判定中,負(fù)載均衡硬件也可以結(jié)合負(fù)載信息。使用負(fù)載均衡硬件更容易看見(jiàn)的一些優(yōu)點(diǎn)是:
- 更寬的負(fù)載均衡算法選擇范圍——您可以選擇各種各樣的負(fù)載均衡算法。例如,您可以根據(jù)負(fù)載、連接或者簡(jiǎn)單的“循環(huán)”邏輯來(lái)選擇算法。
- 跳過(guò)失效的服務(wù)器——負(fù)載均衡器將跳過(guò)集群中失效的服務(wù)器,從而提高響應(yīng)時(shí)間。
- 加速安全套接字層(Secure Socket Layer,SSL)——負(fù)載均衡器通常將SSL處理從應(yīng)用程序服務(wù)器轉(zhuǎn)移到專用SSL加速器上,因而可以加速SSL。通過(guò)減少處理安全事務(wù)所需的時(shí)間,這可以極大地提高性能。
- 較少的網(wǎng)絡(luò)跳數(shù)(hop)——在BEA WebLogic Server集群前面直接使用一個(gè)硬件負(fù)載均衡器導(dǎo)致從負(fù)載均衡器到BEA WebLogic Server 只有一個(gè)網(wǎng)絡(luò)跳。這樣比將負(fù)載均衡器放在第三方代理Web服務(wù)器場(chǎng)之前性能要好,因?yàn)槟菢有枰獦?biāo)準(zhǔn)的兩跳——一跳是從負(fù)載均衡器到Web服務(wù)器,另一跳是從Web服務(wù)器到BEA WebLogic Server。
然而,硬件負(fù)載均衡器一般比用BEA WebLogic Server充當(dāng)代理更昂貴,并且沒(méi)有BEA WebLogic Server特有的智能,該智能可提供更好的故障切換性能、降低網(wǎng)絡(luò)混亂程度。特別是,硬件負(fù)載均衡器不能利用HTTP cookies,這些cookies載有BEA WebLogic集群特有的有關(guān)集群對(duì)象的主實(shí)例和副實(shí)例位置的信息。
BEA WebLogic Server支持大多數(shù)現(xiàn)在市場(chǎng)上流行的負(fù)載均衡硬件產(chǎn)品。注意一點(diǎn)很重要,聯(lián)合使用這些負(fù)載均衡產(chǎn)品和BEA WebLogic Server不需要額外的編碼。
要支持通過(guò)負(fù)載均衡硬件的直接客戶機(jī)訪問(wèn),BEA WebLogic Server的復(fù)制系統(tǒng)(replication system)使客戶機(jī)能夠使用副(secondary)會(huì)話狀態(tài),而不用管客戶機(jī)故障切換到哪臺(tái)服務(wù)器。BEA WebLogic Server繼續(xù)使用客戶機(jī)方的cookies或者URL重寫功能,以記錄主服務(wù)器和副服務(wù)器的位置。然而,在部署負(fù)載均衡硬件時(shí),這一信息只能用作客戶機(jī)會(huì)話狀態(tài)位置的歷史。通過(guò)負(fù)載均衡硬件訪問(wèn)集群時(shí),客戶機(jī)不使用cookie信息主動(dòng)查找故障后的服務(wù)器位置。簡(jiǎn)而言之,負(fù)載均衡硬件使用它的配置策略將請(qǐng)求定向到集群中某一可用BEA WebLogic Server。

圖3:硬件負(fù)載均衡器連接BEA WebLogic Server
一旦服務(wù)器選定哪臺(tái)客戶機(jī)將進(jìn)行故障切換,該服務(wù)器就使用該客戶機(jī)cookie中的信息(或者如果使用URL重寫功能,就使用HTTP請(qǐng)求中的信息)獲得會(huì)話狀態(tài)復(fù)制品(稍后會(huì)更詳細(xì)地討論)。故障切換過(guò)程對(duì)客戶機(jī)仍保持完全透明。
WAN集群 TOP
BEA WebLogic集群也可以配置在廣域網(wǎng)(WAN)上。在這種情況下,盡管配置成單一的集群,但BEA WebLogic Server實(shí)例在物理上可能位于不同的數(shù)據(jù)中心、屬于不同的局域網(wǎng)(LAN),并且可能相距很遠(yuǎn)。這些配置通常用于災(zāi)難恢復(fù),或者提供從地理上分布的客戶機(jī)到全球分布的應(yīng)用程序(不同的數(shù)據(jù)中心托管相同的應(yīng)用程序)的快速本地訪問(wèn)。
WAN集群方案:
1.在構(gòu)成WAN集群的兩個(gè)或者多個(gè)LAN之間有可靠的、高吞吐能力的連接。該連接可以是專用線路,或者其他受控的“寬管(fat pipe)”型連接。從BEA WebLogic集群的角度來(lái)看,這種情況與簡(jiǎn)單的LAN情況沒(méi)什么差別。集群可以為持久性狀態(tài)使用內(nèi)存中(in-memory)復(fù)制,并且兩個(gè)LAN之間的所有路由器必須允許多播和點(diǎn)到點(diǎn)連接的TCP/IP。

圖4:具有可靠的、高吞吐量連接的WAN集群
要使WAN集群高度可用,應(yīng)該跨WAN生成復(fù)制組,以便主和副服務(wù)器不在同一數(shù)據(jù)中心(如圖4所示)。
2.沒(méi)有高吞吐量、可靠的連接可以利用,并且每個(gè)LAN只能通過(guò)常規(guī)的Internet連接訪問(wèn)集群的其他部分,并且沒(méi)有受控的集線器和路由器。
值得推薦的是,在這種情況下,只能使用基于磁盤的持久性(基于JDBC-或者文件)。利用這種配置,子集群不能相互通信。然而,他們使用持久的狀態(tài)存儲(chǔ)設(shè)備通過(guò)Internet進(jìn)行復(fù)制。使用市場(chǎng)上銷售的文件和數(shù)據(jù)庫(kù)復(fù)制產(chǎn)品(用于文件的Veritas,用于數(shù)據(jù)庫(kù)的Oracle等)可以實(shí)現(xiàn)這一功能。但是,磁盤存儲(chǔ)器復(fù)制可能不是實(shí)時(shí)的,即:它可能根據(jù)配置的時(shí)間間隔進(jìn)行復(fù)制。測(cè)試表明:基于JDBC的持久性比基于文件的持久性要快得多。

圖5:沒(méi)有可靠連接的 WAN集群
在此方案中(如上面的圖5所示),如果第1個(gè)數(shù)據(jù)中心發(fā)生故障,請(qǐng)求將被重路由到另外一個(gè)數(shù)據(jù)中心,對(duì)象的狀態(tài)將從持久性存儲(chǔ)器中重載,但自最后一次成功復(fù)制之后,可能有些信息沒(méi)有被復(fù)制,因而可能丟失。
為了使BEA WebLogic WAN集群能夠?qū)崿F(xiàn),必須使用像Alteon、F5、和Resonate這樣的第三方全局負(fù)載均衡器(Global Load Balancer)(也稱為Global Content Manager)。
為了實(shí)現(xiàn)最高的可用性,WAN 集群可能需要大量的網(wǎng)絡(luò)和系統(tǒng)資源。
Web 集群 TOP
BEA WebLogic Server通過(guò)保持訪問(wèn)集群Servlet和Java Server Page(JSP)的客戶機(jī)的HTTP會(huì)話狀態(tài),為Web應(yīng)用程序提供集群支持。這種持久性可以通過(guò)配置BEA WebLogic控制臺(tái)獲得,可以從下面三個(gè)互斥選項(xiàng)中選擇:
- In-memory復(fù)制
- 文件系統(tǒng)持久性
- 通過(guò)JDBC的數(shù)據(jù)庫(kù)持久性
每個(gè)選項(xiàng)分別表現(xiàn)了持久性和性能之間的一種折衷。文件或數(shù)據(jù)庫(kù)的持久性提供可能的最可靠持久性。然而,這些選項(xiàng)就性能而言代價(jià)更大。In-memory復(fù)制通過(guò)Servlet和JSP HTTP會(huì)話狀態(tài)自動(dòng)故障切換為客戶提供高可用性優(yōu)點(diǎn)。該選項(xiàng)最適合那些為了獲取最優(yōu)性能而愿意接受持久性折衷方案的客戶。
In-memory復(fù)制通過(guò)創(chuàng)建主會(huì)話來(lái)提供客戶機(jī)會(huì)話狀態(tài)的持久性。而主會(huì)話保存在客戶機(jī)最初連接到的BEA WebLogic Server實(shí)例上,并且在集群內(nèi)的另一個(gè)BEA WebLogic Server實(shí)例上有該會(huì)話狀態(tài)的副復(fù)制品。復(fù)制品總是保持最新,以便托管主會(huì)話狀態(tài)的服務(wù)器發(fā)生故障時(shí)可以使用它。從一個(gè)實(shí)例復(fù)制會(huì)話狀態(tài)到另一個(gè)實(shí)例的過(guò)程正是In-memory復(fù)制的機(jī)制。
如果可能,BEA WebLogic Server在不同的機(jī)器上(有別于托管主會(huì)話狀態(tài)的機(jī)器)創(chuàng)建會(huì)話狀態(tài)的復(fù)制品。BEA WebLogic Server使您能夠利用Administration Console中的復(fù)制組(replication group)進(jìn)一步控制存放副狀態(tài)的地方。復(fù)制組只是用于存儲(chǔ)會(huì)話狀態(tài)復(fù)制品的集群實(shí)例優(yōu)先級(jí)列表。
圖6描述了客戶機(jī)利用BEA WebLogic代理或者硬件負(fù)載均衡器訪問(wèn)服務(wù)器集群。該示例使用BEA WebLogic Server集群處理靜態(tài)和動(dòng)態(tài)的Web內(nèi)容,以及托管應(yīng)用程序的業(yè)務(wù)邏輯。所有HTTP請(qǐng)求通過(guò)負(fù)載均衡器轉(zhuǎn)發(fā)給集群。

圖6:負(fù)載均衡(硬件或者代理)將請(qǐng)求發(fā)送給集群內(nèi)的某一可用服務(wù)器
當(dāng)客戶機(jī)請(qǐng)求Servlet時(shí),硬件負(fù)載均衡器代理到集群的請(qǐng)求。負(fù)載均衡器利用它的配置策略,將客戶機(jī)請(qǐng)求發(fā)送到Server A之后,Server A充當(dāng)客戶機(jī)Servlet會(huì)話狀態(tài)的主托管機(jī)。
在上面的圖6中,Server A使用特殊的算法托管會(huì)話狀態(tài)的復(fù)制品。選擇Server B托管該復(fù)制品。通知客戶機(jī)在本地cookie中記錄Server A和Server B的位置。如果客戶機(jī)不使用cookies,主服務(wù)器和副服務(wù)器的記錄可以記錄在通過(guò)URL重寫功能返回客戶機(jī)的URL中。
當(dāng)客戶機(jī)向集群提出另外的請(qǐng)求時(shí),負(fù)載均衡器使用客戶機(jī)方cookie中的標(biāo)識(shí)符來(lái)確保這些請(qǐng)求繼續(xù)發(fā)送到Server A(而不是被負(fù)載均衡到集群內(nèi)的其他服務(wù)器)。這就確保在會(huì)話生存期內(nèi),客戶機(jī)總是保持與托管主會(huì)話對(duì)象的服務(wù)器相關(guān)聯(lián)。
文件系統(tǒng)和數(shù)據(jù)庫(kù)持久性工作方式類似,只是狀態(tài)數(shù)據(jù)保存在磁盤上。在這種情況下,BEA WebLogic Server實(shí)例之間沒(méi)有集群感知的占位程序或者狀態(tài)復(fù)制。在故障切換處理期間,保存的狀態(tài)由下一個(gè)從負(fù)載均衡器中得到請(qǐng)求的可用服務(wù)器實(shí)例從磁盤上讀取。
用代理Web服務(wù)器的故障切換 TOP
在客戶機(jī)會(huì)話期間,萬(wàn)一Server A出現(xiàn)故障,客戶機(jī)到Server A的下一個(gè)連接請(qǐng)求也會(huì)失敗。
發(fā)生這種情況時(shí),代理可以確定(從cookie或者URL)JSP或者Servlet對(duì)象要訪問(wèn)的副服務(wù)器(在該例中是Server B)。請(qǐng)求被代理直接重路由到副服務(wù)器(B)。之后,Server B指定自己作為主服務(wù)器,并在集群內(nèi)的任何其他可用服務(wù)器上創(chuàng)建另一個(gè)副服務(wù)器(C)(如圖7所示)。

圖7:具有代理負(fù)載均衡的主服務(wù)器出現(xiàn)故障,則將請(qǐng)求重定向到集群中的副服務(wù)器
用負(fù)載均衡硬件的故障切換 TOP
負(fù)載均衡硬件為了響應(yīng)連接失敗,會(huì)使用其配置策略把請(qǐng)求發(fā)送給集群中某一可用的BEA WebLogic Server。在上述示例中,假設(shè)在Server A出現(xiàn)故障后,負(fù)載均衡器會(huì)將客戶機(jī)的請(qǐng)求定向到Server C。
當(dāng)客戶機(jī)連接到Server C時(shí),服務(wù)器使用客戶機(jī)cookie中的信息(或者如果使用了URL重寫功能,則使用HTTP請(qǐng)求中的信息)獲取Server B上的會(huì)話狀態(tài)復(fù)制品。故障切換的過(guò)程足夠快,因而系統(tǒng)故障對(duì)客戶機(jī)是完全透明的。
Server C變成客戶機(jī)主會(huì)話狀態(tài)的新托管主機(jī),Server B繼續(xù)托管會(huì)話狀態(tài)的復(fù)制品。在客戶機(jī)cookie中,或者通過(guò)URL重寫功能,會(huì)再一次更新有關(guān)主、副托管主機(jī)的新信息。

圖8:具有負(fù)載均衡硬件的主服務(wù)器出現(xiàn)故障,它將請(qǐng)求重定向到集群中的某一可用服務(wù)器
在兩個(gè)服務(wù)器集群中,客戶機(jī)將透明地故障切換到托管副會(huì)話狀態(tài)的服務(wù)器。另一臺(tái)服務(wù)器一加入到該集群中,或者原來(lái)的主服務(wù)器重新啟動(dòng)或重新連接到網(wǎng)絡(luò)中,就會(huì)繼續(xù)客戶機(jī)會(huì)話狀態(tài)的復(fù)制。
對(duì)象集群 TOP
BEA WebLogic Server支持的第二種形式的集群是對(duì)象集群。如果某一對(duì)象被集群,該對(duì)象的實(shí)例——稱為復(fù)制品——將被部署在集群內(nèi)的所有服務(wù)器上。
在BEA WebLogic Server中,支持集群對(duì)象的關(guān)鍵技術(shù)是復(fù)制品感知的占位程序。連接到BEA WebLogic Server集群、并且查找集群對(duì)象的客戶機(jī)獲得一個(gè)該對(duì)象的占位程序,在調(diào)用者看來(lái),它是一般的占位程序。但是,該占位程序不是表示單一的對(duì)象,而是表示一個(gè)復(fù)制品集合。
通過(guò)使用復(fù)制品感知的占位程序和全局共享和復(fù)制的JNDI樹(shù),客戶機(jī)可以選擇調(diào)用對(duì)象的哪一個(gè)實(shí)例。
默認(rèn)情況下,在部署對(duì)象、然后連入JNDI樹(shù)的時(shí)候,會(huì)自動(dòng)生成該對(duì)象的復(fù)制品感知的占位程序。如果該對(duì)象不需要復(fù)制,可以關(guān)閉這一特性。復(fù)制品感知的占位程序含有查找某一對(duì)象所需的邏輯,而這一對(duì)象在部署該對(duì)象的任意BEA WebLogic Server實(shí)例上。
BEA WebLogic Server實(shí)例有能力更新該占位程序的本地副本,因而該占位程序含有托管對(duì)象復(fù)制品的所有可用服務(wù)器實(shí)例的完整列表。該占位程序還包含在其主服務(wù)器之中分配負(fù)載時(shí)的負(fù)載均衡邏輯。每次調(diào)用時(shí),占位程序利用其負(fù)載均衡算法選擇調(diào)用哪一個(gè)復(fù)制品。這種在集群中負(fù)載均衡對(duì)調(diào)用者是透明的。如果在調(diào)用過(guò)程中出現(xiàn)故障,占位程序截獲異常并重新嘗試調(diào)用另一個(gè)復(fù)制品。這種故障切換對(duì)調(diào)用者也是透明的。
萬(wàn)一出現(xiàn)故障,占位程序從其列表中刪除失效的服務(wù)器實(shí)例。如果在其列表中沒(méi)有服務(wù)器了,則它再次使用DNS查找某個(gè)正在運(yùn)行的服務(wù)器,獲得當(dāng)前正在運(yùn)行的實(shí)例列表。此外,占位程序定期地刷新集群內(nèi)可用的服務(wù)器實(shí)例列表。這使得占位程序能夠利用添加到集群中的新服務(wù)器。
BEA WebLogic Server中的對(duì)象集群根據(jù)維護(hù)實(shí)體bean和會(huì)話bean狀態(tài)的重要性,有差別地處理實(shí)體bean和會(huì)話bean。下面描述對(duì)各種EJB(Enterprise JavaBean)的不同處理方法。
無(wú)狀態(tài)會(huì)話EJB TOP
因?yàn)闊o(wú)狀態(tài)bean不保存代表客戶機(jī)的狀態(tài),所以占位程序自由地將所有調(diào)用路由到托管該bean的任何服務(wù)器。因?yàn)閎ean是集群的,所以在故障事件中,占位程序可以自動(dòng)進(jìn)行故障切換。
有狀態(tài)會(huì)話EJB TOP
BEA WebLogic Server復(fù)制有狀態(tài)會(huì)話bean EJB的狀態(tài),方法與它復(fù)制HTTP會(huì)話狀態(tài)的方法類似。當(dāng)客戶機(jī)創(chuàng)建EJBObject占位程序時(shí),最初由負(fù)載均衡器選擇的實(shí)例會(huì)自動(dòng)選擇托管已復(fù)制EJB狀態(tài)的副服務(wù)器。
客戶機(jī)接收一個(gè)復(fù)制品感知的占位程序,它列出集群內(nèi)托管EJB狀態(tài)的主、副服務(wù)器的位置。主服務(wù)器托管與客戶機(jī)交互的實(shí)際EJB實(shí)例。副服務(wù)器只托管復(fù)制的EJB狀態(tài),這只消耗很小的內(nèi)存空間。除非發(fā)生故障切換,否則副服務(wù)器不創(chuàng)建實(shí)際的EJB實(shí)例。這樣保證在副服務(wù)器上消耗的資源最少,保存復(fù)制的EJB狀態(tài)不需要配置額外的EJB資源。
當(dāng)客戶機(jī)修改EJB的狀態(tài)時(shí),狀態(tài)變化被復(fù)制到副服務(wù)器實(shí)例上。對(duì)于使用事務(wù)的EJB,事務(wù)提交后,復(fù)制立即發(fā)生。對(duì)于不使用事務(wù)的EJB,調(diào)用每個(gè)方法后復(fù)制發(fā)生。在這兩種情況下,只有EJB狀態(tài)的實(shí)際變化被復(fù)制到副服務(wù)器上,從而保證與復(fù)制過(guò)程相關(guān)的開(kāi)銷最小。
如果主服務(wù)器出現(xiàn)故障,客戶機(jī)的EJB占位程序會(huì)將以后的請(qǐng)求重定向到副BEA WebLogic Server實(shí)例。此時(shí),副服務(wù)器利用復(fù)制的狀態(tài)數(shù)據(jù)創(chuàng)建一個(gè)新的EJB實(shí)例,并在副服務(wù)器上繼續(xù)處理。
故障切換后,BEA WebLogic Server選擇一個(gè)新的副服務(wù)器來(lái)復(fù)制EJB會(huì)話狀態(tài)(如果在集群中有其他可用服務(wù)器的話)。在下一個(gè)方法調(diào)用中,將會(huì)自動(dòng)更新客戶機(jī)的復(fù)制品感知占位程序中的新的主、副服務(wù)器實(shí)例位置。
實(shí)體bean TOP
當(dāng)EJBHome找到或者創(chuàng)建一個(gè)實(shí)體bean之后,它返回訂住該服務(wù)器的占位程序。該服務(wù)器出現(xiàn)故障之前,有關(guān)該占位程序的所有請(qǐng)求都發(fā)往相同服務(wù)器。在這種情況下,BEA WebLogic Server故障切換至另一臺(tái)服務(wù)器。注意:在這種情況下沒(méi)有復(fù)制,BEA WebLogic Server依靠數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)變化情況。由于EJB部署在集群內(nèi),所以只需要另一臺(tái)可用的服務(wù)器從數(shù)據(jù)庫(kù)中重載其狀態(tài)。此時(shí),占位程序?qū)?huì)用托管重新創(chuàng)建的EJB的服務(wù)器位置進(jìn)行更新。
實(shí)體bean的負(fù)載均衡只在主(home)級(jí)進(jìn)行。然而,為了故障切換,復(fù)制品感知占位程序?qū)⒃诹硪慌_(tái)服務(wù)器上重試請(qǐng)求。應(yīng)該注意的是:只有請(qǐng)求在當(dāng)前事務(wù)外時(shí),才是這種情況。
由于在集群內(nèi)可能存在該實(shí)體bean的多個(gè)實(shí)例,所以每個(gè)實(shí)例都必須在每個(gè)事務(wù)之前從數(shù)據(jù)庫(kù)中讀取,并且每次提交時(shí)寫入。
如果是只讀的實(shí)體bean,bean的數(shù)據(jù)由訪問(wèn)該bean的服務(wù)器實(shí)例在本地緩存。在數(shù)據(jù)很少修改的情況下,這樣做節(jié)省數(shù)據(jù)庫(kù)訪問(wèn)。當(dāng)這些數(shù)據(jù)是由只讀的EJB修改時(shí),通過(guò)向服務(wù)器的其他實(shí)例多播無(wú)效消息,可明確地使集群內(nèi)相關(guān)的只讀bean失效。這種失效方法可用于指定的主鍵、某一鍵集或者所有指定類型的bean。
全部集群的JNDI樹(shù) TOP
某一單獨(dú)BEA WebLogic Server的客戶機(jī)使用JNDI兼容的命名服務(wù)訪問(wèn)對(duì)象和服務(wù)。JNDI命名服務(wù)包含一系列由服務(wù)器提供的公共服務(wù),以“樹(shù)形”結(jié)構(gòu)進(jìn)行組織。BEA WebLogic Server通過(guò)將名稱綁定到表示新服務(wù)的JNDI樹(shù)來(lái)提供新的服務(wù)。客戶機(jī)通過(guò)連接到服務(wù)器并查找服務(wù)的綁定名稱來(lái)獲得服務(wù)。
集群內(nèi)的服務(wù)器實(shí)例利用全部集群的JNDI樹(shù)。全部集群的JNDI樹(shù)與單一服務(wù)器的JNDI樹(shù)類似,在這種情況下該樹(shù)包含一系列可用的服務(wù)。但是,全部集群的JNDI樹(shù)除了保存本地服務(wù)的名稱之外,它還保存復(fù)制品感知的占位程序,而該占位程序指向集群內(nèi)所有服務(wù)器上可用的集群對(duì)象。集群內(nèi)的各BEA WebLogic Server實(shí)例創(chuàng)建和維護(hù)全部集群JNDI樹(shù)的一個(gè)本地副本。
JMS 集群 TOP
BEA WebLogic Server通過(guò)在整個(gè)集群內(nèi)分布JMS目的地和連接工廠來(lái)支持多個(gè)JMS服務(wù)器的集群。
JMS目的地是接收消息的實(shí)體。客戶機(jī)使用JMS連接工廠建立與目的地的連接。
利用集群,BEA WebLogic Server的高級(jí)JMS可伸縮性可通過(guò)如下方法實(shí)現(xiàn):
通過(guò)連接工廠在多個(gè)JMS服務(wù)器中分配應(yīng)用程序的負(fù)載。這樣提供多個(gè)服務(wù)器間的連接負(fù)載平衡,減少單臺(tái)JMS服務(wù)器上的負(fù)載,并通過(guò)將連接路由到指定服務(wù)器而使會(huì)話集中。
通過(guò)虛擬目的地標(biāo)識(shí)跨多個(gè)JMS服務(wù)器分配目的地。這可減少指定服務(wù)器上各物理目的地的負(fù)載,并且極大地提高消息傳遞的可靠性和性能。
可選的多播支持可以減少JMS服務(wù)器必需傳送的消息數(shù)目。JMS服務(wù)器只將消息的單個(gè)副本轉(zhuǎn)發(fā)給每個(gè)與多播IP地址相關(guān)的主機(jī)組,而與訂閱的應(yīng)用程序數(shù)目無(wú)關(guān)。
JMS連接工廠可以自動(dòng)部署在集群內(nèi)的多臺(tái)服務(wù)器上。使用分布式JMS連接工廠,客戶機(jī)可以從BEA WebLogic Server的任意實(shí)例中取得一個(gè)JMS連接。每臺(tái)BEA WebLogic Server處理一組JMS目的地請(qǐng)求。
當(dāng)JMS客戶機(jī)請(qǐng)求來(lái)自BEA WebLogic Server集群的JMS連接時(shí),它可能根據(jù)所用的負(fù)載均衡算法從集群的任意服務(wù)器上獲得。該服務(wù)器可能不是處理客戶機(jī)所需的到指定目的地JMS請(qǐng)求的服務(wù)器。但使用JNDI,部署在每個(gè)BEA WebLogic Server實(shí)例上的連接工廠可以訪問(wèn)集群內(nèi)任意服務(wù)器的目的地組。這樣每臺(tái)客戶機(jī)可以在集群范圍內(nèi)透明地訪問(wèn)集群內(nèi)的任何目的地。
使用虛擬目的地,允許您配置多個(gè)物理目的地作為單一分布式目的地集合的成員,這樣萬(wàn)一某臺(tái)服務(wù)器出現(xiàn)故障,BEA WebLogic JMS的高可用性實(shí)現(xiàn)可提供某種程度的服務(wù)連續(xù)性。特別是,管理員可以配置集群內(nèi)某一給定目的地的多個(gè)實(shí)例作為虛擬目的地的成員。如果集群內(nèi)的一個(gè)實(shí)例出現(xiàn)故障,則同一目的地的其他實(shí)例能夠?yàn)镴MS過(guò)程和消息使用者提供服務(wù)。在這種情況下,可以將遺留在故障服務(wù)器上的可遷移目的地服務(wù)消息遷移到正在運(yùn)行的實(shí)例上。
虛擬目的地和遍及整個(gè)集群的分布式連接工廠,使管理員能夠通過(guò)配置不同的負(fù)載均衡算法和為集群各節(jié)點(diǎn)設(shè)置相對(duì)權(quán)重來(lái)人工均衡JMS服務(wù)的負(fù)載。
JDBC元池集群 TOP
萬(wàn)一正在服務(wù)的集群成員發(fā)生故障,在不更改連接參數(shù)的情況下,集群JDBC(元池)允許外部的JDBC客戶機(jī)自動(dòng)重新連接和重啟它們的JDBC連接。集群JDBC需要DataSource對(duì)象和BEA WebLogic RMI驅(qū)動(dòng)程序以連接到DBMS。利用Administration Console 可以為每個(gè)BEA WebLogic Server定義DataSource對(duì)象。JDBC元池為部署在BEA WebLogic Server集群內(nèi)多臺(tái)服務(wù)器上的JDBC連接池提供集群。當(dāng)客戶機(jī)向元池請(qǐng)求連接時(shí),集群選擇將提供連接的服務(wù)器,進(jìn)行負(fù)載均衡和保護(hù),以防止服務(wù)器失效。一旦客戶機(jī)擁有一個(gè)連接,由JDBC驅(qū)動(dòng)程序保存的狀態(tài)使它必需將客戶機(jī)與主BEA WebLogic Server綁定在一起。
BEA WebLogic Server實(shí)例如何在網(wǎng)絡(luò)上通信 TOP
每個(gè)BEA WebLogic Server實(shí)例運(yùn)行在惟一IP地址的網(wǎng)絡(luò)上。整個(gè)集群的監(jiān)聽(tīng)端口必須相同。BEA WebLogic Server允許多宿主(multi-homing),這意味著可以分配多個(gè)IP地址給同一臺(tái)物理機(jī)器。因此多宿主主機(jī)有多個(gè)網(wǎng)絡(luò)接口,每個(gè)網(wǎng)絡(luò)接口可以運(yùn)行一個(gè)BEA WebLogic Server實(shí)例。集群內(nèi)BEA WebLogic Server實(shí)例彼此利用IP多播通信,用以向集群內(nèi)的所有服務(wù)器復(fù)制某類信息。IP多播是一種簡(jiǎn)單的廣播技術(shù),它使多個(gè)應(yīng)用程序能夠向某一給定IP多播地址和端口號(hào)“訂閱”,并監(jiān)聽(tīng)消息。
集群中的每臺(tái)服務(wù)器都配置常用的多播地址。當(dāng)服務(wù)器向集群的多播地址發(fā)送消息時(shí),所有的服務(wù)器都接收消息。這比讓服務(wù)器發(fā)送點(diǎn)到點(diǎn)消息的效率要高得多,但它的確要求集群中的所有服務(wù)器必須在支持多播的網(wǎng)絡(luò)上。多播不能通過(guò)Internet上進(jìn)行,因而集群不能經(jīng)過(guò)Internet。
BEA WebLogic Server把IP多播用于集群中各個(gè)服務(wù)器實(shí)例的所有一對(duì)多通信。例如:
- 集群范圍內(nèi)的JNDI更新——所有集群成員使用多播通知本地部署或者刪除服務(wù)的可用性。服務(wù)器監(jiān)視這些通知,以便它們能更新其本地JNDI樹(shù)以反映當(dāng)前的部署情況。
- 集群“心跳(heartbeats)”——BEA WebLogic Server使用多播來(lái)廣播規(guī)律的“心跳”消息,通告集群內(nèi)單個(gè)服務(wù)器實(shí)例的可用性。集群內(nèi)的所有服務(wù)器將監(jiān)聽(tīng)心跳消息作為確定服務(wù)器失效時(shí)間的方法。“心跳”的使用是BEA WebLogic確定給定服務(wù)器實(shí)例是否可用的兩種機(jī)制之一。BEA WebLogic還監(jiān)視IP套節(jié)字錯(cuò)誤作為確定服務(wù)器失效時(shí)更直接的方法。例如,如果服務(wù)器實(shí)例A具有到實(shí)例B的開(kāi)放套節(jié)字,而該套節(jié)字突然關(guān)閉了,則Server A假定Server B脫線了。
配置和管理BEA WebLogic 集群 TOP
作為一個(gè)單位來(lái)管理的內(nèi)部相關(guān)BEA WebLogic Server資源集稱為域(domain)。一個(gè)域包括一臺(tái)或者多臺(tái)BEA WebLogic Server,也可能包括BEA WebLogic Server集群。域,以及集群可以跨多個(gè)物理機(jī)器生成。
通過(guò)Administration Console,可以使用BEA的圖形用戶接口(GUI)管理和監(jiān)視域、集群或者單獨(dú)的BEA WebLogic Server的配置。
BEA WebLogic集群的重要特性之一是能夠把單一的視圖應(yīng)用于集群內(nèi)配置的所有單獨(dú)服務(wù)器上。在該意義上來(lái)說(shuō),集群被作為某一域內(nèi)的實(shí)體進(jìn)行管理。在域中配置集群時(shí),集群的所有服務(wù)器必須也是該域的一部分。一個(gè)域可以包含多個(gè)集群。
正在運(yùn)行管理服務(wù)的BEA WebLogic Server稱為管理服務(wù)器(administration server)。管理服務(wù)提供配置和監(jiān)控整個(gè)域的控制中心點(diǎn)。為了在該域進(jìn)行任意管理操作,必須運(yùn)行管理服務(wù)器。
在擁有多臺(tái)BEA WebLogic Server的域中,只有一臺(tái)服務(wù)器是管理服務(wù)器,其他服務(wù)器稱為受管服務(wù)器(Managed Server)。每個(gè)BEA WebLogic受管服務(wù)器在啟動(dòng)時(shí)從管理服務(wù)器獲得其配置。
在生產(chǎn)系統(tǒng)的典型配置中,關(guān)于您的業(yè)務(wù)邏輯的應(yīng)用程序和組件可以部署在受管服務(wù)器上,而管理服務(wù)器的作用是配置和監(jiān)視受管服務(wù)器。如果管理服務(wù)器出現(xiàn)故障,部署在受管服務(wù)器上的應(yīng)用程序不會(huì)受影響,繼續(xù)處理客戶機(jī)的請(qǐng)求。在這樣的情況下,管理服務(wù)器一旦重新啟動(dòng),就可以重新獲得活動(dòng)域的管理控制。

圖9:一般的BEA WebLogic Server域架構(gòu),它含有單獨(dú)的服務(wù)器、集群、多臺(tái)物理機(jī)器和單臺(tái)管理服務(wù)器
配置集群 TOP
利用BEA WebLogic Server的Domain Configuration Wizard,可以簡(jiǎn)單快速地配置集群。通過(guò)直觀的圖形接口,管理員可以通過(guò)檢查一系列的窗口并輸入特定的參數(shù)來(lái)創(chuàng)建集群域。這些參數(shù)配置擁有管理服務(wù)器、受管服務(wù)器、物理機(jī)器,以及特定應(yīng)用程序的JDBC數(shù)據(jù)源參數(shù)、JMS工廠和目的地、安全實(shí)體、JVM以及其他基本子系統(tǒng)和組件(圖10)的集群拓?fù)洹r?yàn)證并記錄用戶提供的信息,并由這些信息生成完整的集群配置。

圖10:用Domain Configuration Wizard配置BEA WebLogic Cluster
Domain Configuration Wizard也可以創(chuàng)建域模板,這樣可以復(fù)制復(fù)雜的環(huán)境,簡(jiǎn)化將集群應(yīng)用程序轉(zhuǎn)入生產(chǎn)的冗長(zhǎng)過(guò)程。
BEA WebLogic Server域和集群的持久性配置保存在一個(gè)XML配置文件中。管理服務(wù)器動(dòng)態(tài)管理該配置,并且用戶可以通過(guò)Administration Console使用它(圖11)。

圖11:通過(guò)BEA WebLogic Server Administration Console管理集群域
在Administration Console中可以完成的集群配置任務(wù)包括:
- 利用Administration Console的Cluster節(jié)點(diǎn)配置服務(wù)器集群。利用該節(jié)點(diǎn)可以修改的屬性包括Cluster Name、Cluster ListenPort和集群中的服務(wù)器名稱。
- 利用Administration Console的Cluster節(jié)點(diǎn)復(fù)制服務(wù)器集群。集群被復(fù)制,保持屬性值和原集群中各個(gè)服務(wù)器,以及在Server節(jié)點(diǎn)的Configuration部分設(shè)置的新集群名稱。
- 利用Administration Console的Cluster節(jié)點(diǎn)監(jiān)視集群中的服務(wù)器。
- 利用Administration Console的Cluster節(jié)點(diǎn)為集群指派服務(wù)器。
- 利用Administration Console的Cluster節(jié)點(diǎn)刪除集群。
使用節(jié)點(diǎn)管理器(Node Manager)自動(dòng)管理 TOP
BEA WebLogic Server生產(chǎn)環(huán)境中的受管服務(wù)器通常被分布在多臺(tái)機(jī)器和多個(gè)地理位置。自動(dòng)管理允許集群自管理和自動(dòng)地對(duì)各種突發(fā)條件和情況做出反應(yīng)。利用節(jié)點(diǎn)管理器實(shí)用程序大大方便了這一強(qiáng)大的特性。
節(jié)點(diǎn)管理器是一個(gè)Java實(shí)用程序,在BEA WebLogic Server(圖12)中作為獨(dú)立的進(jìn)程運(yùn)行,允許您執(zhí)行受管服務(wù)器的常規(guī)操作任務(wù),而不管它與其管理服務(wù)器的相對(duì)位置如何。雖然節(jié)點(diǎn)管理器的使用是可以選擇的,但如果您的BEA WebLogic Server環(huán)境以高可用性要求托管應(yīng)用程序,則它可提供極有價(jià)值的優(yōu)點(diǎn)。

圖12:多機(jī)集群域中的節(jié)點(diǎn)管理器
與只刷新用戶請(qǐng)求信息顯示的Administration Console不同,節(jié)點(diǎn)管理器連續(xù)地監(jiān)視受管服務(wù)器。通過(guò)基于JMX的開(kāi)放管理接口,客戶可以基于節(jié)點(diǎn)管理器構(gòu)建強(qiáng)大的事件通知和統(tǒng)計(jì)監(jiān)視框架。同時(shí),可以配置節(jié)點(diǎn)管理器自動(dòng)對(duì)集群事件做出反應(yīng),并根據(jù)預(yù)先配置的條件采取某些行動(dòng)。例如,節(jié)點(diǎn)管理器可以在突然失效后自動(dòng)重啟某臺(tái)受管服務(wù)器,或者如果由某臺(tái)服務(wù)器所報(bào)告的某一統(tǒng)計(jì)參數(shù)低于配置的閾值時(shí),則給管理員發(fā)送消息。
有關(guān)配置和管理BEA WebLogic服務(wù)器、集群和域的更多信息,請(qǐng)參閱BEA WebLogic在線文檔,其網(wǎng)址是:http://e-docs.bea.com/wls/docs81/adminguide/。
結(jié)束語(yǔ) TOP
本白皮書(shū)概述了BEA WebLogic Server中的集群特點(diǎn),說(shuō)明了BEA WebLogic架構(gòu)如何使用集群技術(shù)提供企業(yè)客戶所需的高可用性和可伸縮性。
有關(guān)BEA WebLogic集群技術(shù)的更多細(xì)節(jié),請(qǐng)參閱BEA WebLogic Server文檔,其網(wǎng)址是:http://e-docs.bea.com/wls/docs81。
BEA WebLogic集群的目的之一是消除集群內(nèi)的單點(diǎn)故障。這一點(diǎn)是通過(guò)架構(gòu)實(shí)現(xiàn)冗余來(lái)達(dá)到的。在硬件或者電源故障事件中,客戶機(jī)能夠利用這種冗余自動(dòng)故障切換到某一正在運(yùn)行的系統(tǒng)資源上。正是這種避免停機(jī)的能力為BEA客戶提供了24×7可管理的保證。
另一個(gè)目標(biāo)是推動(dòng)高度可伸縮的企業(yè)電子商務(wù)基礎(chǔ)結(jié)構(gòu),這在當(dāng)今的動(dòng)態(tài)業(yè)務(wù)環(huán)境中可使增長(zhǎng)能力無(wú)限。
BEA相信BEA WebLogic集群技術(shù)是業(yè)內(nèi)最先進(jìn)的,并且向客戶提供最高級(jí)別的可伸縮性和任務(wù)關(guān)鍵型應(yīng)用程序最需要的可靠性。
BEA WebLogic集群,加上其他的性能和可伸縮性特性,例如JDBC連接池和多池、高級(jí)緩存、只讀/可改寫的只讀實(shí)體bean以及線程池,使WebLogic Server成為市場(chǎng)上最可靠、最具伸縮性和性能最強(qiáng)的Java應(yīng)用服務(wù)器。這也是一些大客戶,如FedEx、Charles Schwab、Amazon.com和很多其他客戶在WebLogic Server上構(gòu)建其任務(wù)關(guān)鍵型應(yīng)用程序的原因。
BEA WebLogic Server是BEA E-Business Platform?的基礎(chǔ)。BEA E-Business Platform專門設(shè)計(jì)成能夠跨多個(gè)應(yīng)用程序和系統(tǒng)共享數(shù)據(jù)和服務(wù),它是構(gòu)建在各種開(kāi)放標(biāo)準(zhǔn)之上的基礎(chǔ)結(jié)構(gòu)產(chǎn)品集成套件,這些開(kāi)發(fā)的標(biāo)準(zhǔn)支持大量事務(wù)、業(yè)務(wù)流程管理、應(yīng)用程序集成、企業(yè)內(nèi)和企業(yè)之間的業(yè)務(wù)協(xié)作以及創(chuàng)建和維護(hù)動(dòng)態(tài)電子市場(chǎng)(e-market)的能力。
要了解關(guān)于BEA WebLogic Enterprise Platform?的更多信息,請(qǐng)?jiān)L問(wèn) BEA Web站點(diǎn),其網(wǎng)址是: www.bea.com/。
BEA 簡(jiǎn)介 TOP
BEA是世界上領(lǐng)先的應(yīng)用程序基礎(chǔ)架構(gòu)軟件公司,在世界各地的客戶超過(guò)13000家,包括Fortune全球500強(qiáng)企業(yè)中的大多數(shù)。BEA WebLogic Enterprise Platform提供工業(yè)強(qiáng)度(industrial strength)的、易于使用的軟件基礎(chǔ),使企業(yè)更靈活、生產(chǎn)率更高和連接更強(qiáng),從而顯著地增加了IT生產(chǎn)率并加快了投資回報(bào)。BEA的平臺(tái)是超過(guò)1700家系統(tǒng)集成商、獨(dú)立軟件開(kāi)發(fā)商,以及與BEA合作以確保成功部署客戶解決方案的應(yīng)用程序服務(wù)提供商們的事實(shí)標(biāo)準(zhǔn)。
BEA Systems, Inc.
2315 North First Street
San Jose, CA 95131 U.S.A.
電話: +1.408.570.8000
傳真: +1.408.570.8901
網(wǎng)址:http://www.bea.com
原文出處:
http://dev2dev.bea.com/products/wlserver81/whitepapers/WLS_81_Clustering.jsp