最大化BEA WebLogic Cluster的性能、可用性和安全
通過(guò)高級(jí)的集群功能,基于BEA WebLogic Server的電子商務(wù)應(yīng)用可以跨越多臺(tái)服務(wù)器。(注意:WebLogic Server支持多種類型的集群,其 中僅有一個(gè)和本文相關(guān)--它叫做Web Clustering。在Web Clustering中,強(qiáng)調(diào)了HTTP集群或Web應(yīng)用的表示層。這就是這兒提到的。) 復(fù)制應(yīng)用的組件及其狀態(tài),以及客戶端會(huì) 話狀態(tài)信息以提高可用性。如果服務(wù)器中間會(huì)話(mid-session)失敗,可以在另一臺(tái)服務(wù)器上恢復(fù)客戶端會(huì)話,不會(huì)丟失會(huì)話數(shù)據(jù)。 WebLogic Server集群使得該功能對(duì)視集群為單個(gè)"虛擬服務(wù)器"的客戶端透明。
伴隨著軟件基礎(chǔ)結(jié)構(gòu)逐漸演變?yōu)榘藢?duì)Web內(nèi)容的發(fā)送進(jìn)行優(yōu)化的專業(yè)應(yīng)用服務(wù)器,網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)也演變?quot;內(nèi)容識(shí)別(content aware )"。Cisco System是內(nèi)容交換開(kāi)發(fā)的先驅(qū),所謂內(nèi)容交換是指用來(lái)優(yōu)化基于Web的應(yīng)用的發(fā)送的一類網(wǎng)絡(luò)設(shè)備。這些高性能的網(wǎng)絡(luò)設(shè)備理解基于Web的事 務(wù)的本質(zhì),并知道如何在規(guī)定時(shí)間內(nèi)及時(shí)將它們路由到性能最好的服務(wù)器上。用它們來(lái)提高基于Web的應(yīng)用的可伸縮性、性能、可用性和安全。 本文介紹了如何使用Cisco CSS 11000 Series Content Services Switches ("Cisco內(nèi)容交換機(jī)")最大化BEA WebLogic集群的性能。
起作用的WebLogic集群
可能需要多個(gè)HTTP操作才能完成單個(gè)客戶端事務(wù)?;赪eb的股票交易門(mén)戶的表示接口就是一個(gè)這樣的簡(jiǎn)單例子??蛻舳丝赡芡ㄟ^(guò)多個(gè)步驟 來(lái)執(zhí)行交易(獲得報(bào)價(jià)、進(jìn)行調(diào)查、下訂單、接收確認(rèn)等等)。應(yīng)用程序跟蹤該事務(wù)的"狀態(tài)"和它后面的每個(gè)階段。為了避免失敗 ,可以將該會(huì)話狀態(tài)復(fù)制到另一臺(tái)服務(wù)器上。如果主服務(wù)器出現(xiàn)故障,該會(huì)話狀態(tài)被重新初始化到新的服務(wù)器上(托管狀態(tài)副本的服務(wù)器或恢 復(fù)狀態(tài)的第三個(gè)服務(wù)器)。WebLogic支持三類不同的復(fù)制和恢復(fù)會(huì)話狀態(tài)的方法:數(shù)據(jù)庫(kù)復(fù)制(通過(guò)JDBC)、基于文件的復(fù)制和內(nèi)存中的復(fù)制 。
文件和數(shù)據(jù)庫(kù)復(fù)制很相似。集群中的每臺(tái)服務(wù)器保持到共享文件服務(wù)器或數(shù)據(jù)庫(kù)服務(wù)器的連接。創(chuàng)建或改變狀態(tài)信息時(shí)將它寫(xiě)入文件或數(shù)據(jù) 庫(kù)記錄中。當(dāng)集群中的服務(wù)器出現(xiàn)故障時(shí),后續(xù)客戶端請(qǐng)求被路由到集群中其他可用成員上。新服務(wù)器讀取會(huì)話ID(在初始化會(huì)話時(shí)建立,并 存儲(chǔ)在cookie中或?qū)懭氲秸?qǐng)求的URL中),并且從數(shù)據(jù)庫(kù)或文件系統(tǒng)中取得相關(guān)的狀態(tài)?,F(xiàn)在新服務(wù)器能夠繼續(xù)處理客戶端的事務(wù)。
內(nèi)存中的復(fù)制將狀態(tài)信息從主服務(wù)器發(fā)送到內(nèi)存中指定的備份服務(wù)器上。如果主服務(wù)器出現(xiàn)故障,客戶端將被路由到新的服務(wù)器上。該新的 服務(wù)器具有狀態(tài)副本(在這種情況下,它指定新的服務(wù)器作為備份,創(chuàng)建會(huì)話狀態(tài)的備份副本,并擔(dān)當(dāng)主服務(wù)器的角色)或從備份中(在這種 情況下,它擔(dān)當(dāng)主服務(wù)器的角色,從舊的備份中清除會(huì)話狀態(tài),建立新的備份服務(wù)器,并在備份上創(chuàng)建新的狀態(tài)副本)獲取狀態(tài)。類似于會(huì)話 ID,備份服務(wù)器的ID也被寫(xiě)入cookie或URL,從而允許新的服務(wù)器從備份中恢復(fù)會(huì)話狀態(tài)。新的服務(wù)器能夠繼續(xù)處理客戶端事務(wù)。
請(qǐng)求路由
由于同一集群中的多個(gè)服務(wù)器能夠服務(wù)于一組特定的客戶端請(qǐng)求,所以必須通過(guò)某些機(jī)制,將對(duì)"虛擬服務(wù)器"的客戶端請(qǐng)求路由 到集群中某臺(tái)真正的服務(wù)器。這種請(qǐng)求路由機(jī)制的第一個(gè)也是最簡(jiǎn)單的目標(biāo)如下所述:
1、均衡集群中可用服務(wù)器上的負(fù)載
對(duì)于需要多個(gè)HTTP操作的事務(wù)(也可能是多個(gè)TCP連接),一旦和特定的服務(wù)器集群成員之間建立了客戶會(huì)話,后續(xù)操作必須被定向到同一個(gè) 成員,直到會(huì)話結(jié)束。這將減少開(kāi)銷,并且能夠?yàn)槊總€(gè)連續(xù)的操作從另一臺(tái)服務(wù)器上獲取會(huì)話狀態(tài)。因此改善了用戶的響應(yīng)時(shí)間并提高了集群 總的利用率。因此WebLogic集群請(qǐng)求路由的第二個(gè)目標(biāo)是:
2、保持客戶端和協(xié)助執(zhí)行復(fù)雜事務(wù)邏輯的集群成員之間的"持久會(huì)話"
公共域DNS服務(wù)器(如BIND)中可用的基于DNS的簡(jiǎn)單負(fù)載均衡允許操作者配置多個(gè)具有特定域名(例如,www.mystore.com)的主機(jī)地址。訪 問(wèn)該站點(diǎn)的客戶端被按"round robin"(輪循)的方式解析成每個(gè)配置的地址。客戶端將緩存通過(guò)域名本身返回的名字到地址的映射,主要是為了DNS服務(wù)器中 time-to-live(生存時(shí)間)配置。(注意:雖然這是DNS客戶端的指定性能,實(shí)際的性能根據(jù)操作系統(tǒng)和瀏覽器有所變化。)對(duì)同一主機(jī)名的后 續(xù)請(qǐng)求將轉(zhuǎn)向同一臺(tái)服務(wù)器(利用緩存映射)--因此執(zhí)行會(huì)話連續(xù)性的一個(gè)原始類型。然而,基于DNS方案的一個(gè)主要的缺點(diǎn)是它們不能在服務(wù) 器出現(xiàn)故障時(shí)路由。一旦客戶端"綁定到"服務(wù)器,該綁定將一直保持下去,直到緩存的名字到地址的映射的生存期過(guò)期。所以,客 戶端將一直嘗試連接主機(jī),即使該服務(wù)器已經(jīng)出現(xiàn)故障或者不再服務(wù)了。很明顯,健壯的本地請(qǐng)求路由機(jī)制中需要使用的不僅僅是簡(jiǎn)單的 round-robin DNS。(注意:當(dāng)基于DNS的技術(shù)中結(jié)合了更加強(qiáng)壯的本地請(qǐng)求路由機(jī)制后,該技術(shù)對(duì)于災(zāi)難恢復(fù)和多個(gè)物理隔離的地址之間的均衡負(fù)載非常 有用。)因此,我們上面所列的請(qǐng)求路由目標(biāo)應(yīng)該再擴(kuò)展。
3、快速檢測(cè)并路由到服務(wù)器及處理失敗
基于Proxy Web服務(wù)器的請(qǐng)求路由采用的方案是:在前端終止帶有其他接受傳入客戶端請(qǐng)求并將它們定向到適合的服務(wù)器的集群。一個(gè)典型的 例子是,BEA Weblogic Server充任第三方Web服務(wù)的代理。加入集群協(xié)議后,代理能夠快速檢測(cè)服務(wù)器的故障并路由它們。會(huì)話持久性是通過(guò)檢查會(huì)話cookie來(lái)提供 的。由于它是集群的正式成員,代理能夠理解會(huì)話cookie的格式以及會(huì)話和服務(wù)器之間的關(guān)系。然而,由于它們是通用的應(yīng)用服務(wù)器,這些代 理沒(méi)有針對(duì)請(qǐng)求路由進(jìn)行優(yōu)化,因此性能比專業(yè)的負(fù)載均衡應(yīng)用要差。
負(fù)載均衡應(yīng)用是通用PC,它具有用于負(fù)載均衡應(yīng)用的軟件。這些通用的體系結(jié)構(gòu)和第一代路由器很相像,使用單個(gè)、中央CPU進(jìn)行所有負(fù)載 均衡決策和分組轉(zhuǎn)發(fā)。通過(guò)使用off-the-shelf PC主板(如SSL加速卡)并且編寫(xiě)驅(qū)動(dòng)程序?qū)⑺鼈兒拖到y(tǒng)其他部分集成起來(lái),可以添加其他的功能。通過(guò)把注意力集中在特定的任務(wù)上,這些 應(yīng)用能夠比基于它們的代理服務(wù)器的對(duì)應(yīng)部分提供更好的性能、冗余和特性。然而,應(yīng)用的硬件體系結(jié)構(gòu)最終成為集群性能和可伸縮性的瓶頸 。對(duì)于企業(yè)級(jí)應(yīng)用,性能是請(qǐng)求路由必須考慮的一個(gè)目標(biāo)。該目標(biāo)如下所述。
4、與預(yù)期客戶端請(qǐng)求的容量和數(shù)據(jù)傳輸速率相一致
和通用處理體系結(jié)構(gòu)成為限制第一代路由器的因素一樣,通用PC體系結(jié)構(gòu)成為限制請(qǐng)求路由的因素。意識(shí)到這一點(diǎn)后,Cisco System首先開(kāi) 始開(kāi)發(fā)現(xiàn)在被稱為"內(nèi)容交換"的技術(shù)。與內(nèi)容交換機(jī)相關(guān)的核心知識(shí)產(chǎn)權(quán)為一個(gè)交換體系結(jié)構(gòu),它將請(qǐng)求路由的分組轉(zhuǎn)發(fā)功能的處 理(如網(wǎng)絡(luò)地址轉(zhuǎn)換[NAT]、TTL遞減、MAC地址替換等等)分割成請(qǐng)求路由的控制功能的處理(如服務(wù)器選擇、會(huì)話建立和健康檢查等)。該函 數(shù)的基本分割允許Cisco內(nèi)容交換機(jī)提供比基于PC的負(fù)載均衡設(shè)備更加好的特征和功能及性能。
Cisco內(nèi)容交換機(jī)提供服務(wù)器機(jī)群的高可用性
從邏輯角度來(lái)說(shuō),Cisco內(nèi)容交換機(jī)部署在WebLogic集群的前端,如圖1所示??蛻舳藢?duì)集群的請(qǐng)求被定向到一個(gè)虛擬IP地址(VIP), 它代表 了到外部世界的集群。Cisco內(nèi)容交換機(jī)接收到來(lái)自于外部世界的連接和HTTP請(qǐng)求,并根據(jù)已配置好的策略將它們路由到合適的集群成員上。這 些策略考慮了前面討論的故障轉(zhuǎn)移(failover)和持久機(jī)制。
Cisco 內(nèi)容交換機(jī)為維護(hù)高可用性的WebLogic集群提供了一組完整的特性,包括交換機(jī)冗余、會(huì)話狀態(tài)故障轉(zhuǎn)移和高級(jí)健康檢查。
交換機(jī)冗余
Cisco內(nèi)容交換機(jī)通常部署在冗余對(duì)中。如果主交換機(jī)出現(xiàn)故障,副交換機(jī)將會(huì)接管它的任務(wù)。根據(jù)會(huì)話狀態(tài)冗余的配置,不用破壞客戶端到 服務(wù)器的連接就能進(jìn)行故障轉(zhuǎn)移。某些配置可能將主交換機(jī)和副交換機(jī)同時(shí)用作某些服務(wù)器或內(nèi)容類型的活動(dòng)交換機(jī)和備份交換機(jī)--該配置叫 做"Active-Active"冗余。
會(huì)話狀態(tài)冗余
對(duì)于一些應(yīng)用,當(dāng)Cisco內(nèi)容交換機(jī)出現(xiàn)故障轉(zhuǎn)移時(shí),客戶端到服務(wù)器的現(xiàn)有連接一定不能被破壞。對(duì)于這類應(yīng)用,可以配置內(nèi)容交換機(jī)同 時(shí)在主副交換機(jī)上保存會(huì)話狀態(tài)信息。萬(wàn)一發(fā)生故障,冗余交換機(jī)將在底層網(wǎng)絡(luò)重新會(huì)聚的同時(shí),轉(zhuǎn)發(fā)分組。其中這些分組與客戶端和服務(wù)器 之間的現(xiàn)有連接有關(guān)。
高級(jí)健康檢查
Cisco內(nèi)容交換機(jī)使用主動(dòng)和被動(dòng)技術(shù)來(lái)監(jiān)視服務(wù)器健康。通過(guò)周期性檢測(cè)服務(wù)器,內(nèi)容交換機(jī)將快速檢測(cè)出服務(wù)器故障并能將連接快速重新 路由到可用的服務(wù)器上。高級(jí)健康檢查支持大量的健康檢查性能,包括認(rèn)證Web服務(wù)器、SSL服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)、FTP服務(wù)器、流媒體 服務(wù)器及其他。
Cookie交換技術(shù)提供了靈活的會(huì)話持久性選項(xiàng)
如前面所討論的,出于性能的原因,一旦在集群中的服務(wù)器上做出了初始選項(xiàng),在完成事務(wù)之前必須保持同一客戶端到同一服務(wù)器的連接。 這叫做"會(huì)話持久性"。內(nèi)容交換機(jī)讓會(huì)話cookie完好無(wú)損地從服務(wù)器發(fā)送到客戶端并從客戶端發(fā)送到服務(wù)器,這一點(diǎn)非常關(guān)鍵。 Cisco內(nèi)容交換機(jī)也支持兩類完全不同的方法來(lái)獲得WebLogic集群的會(huì)話狀態(tài)持久性。
主動(dòng)Cookie插入
我們使用該方法配置內(nèi)容交換機(jī),以便在檢測(cè)到新的會(huì)話時(shí)為每一臺(tái)服務(wù)器插入唯一的cookie。然后客戶端將該cookie發(fā)送回服務(wù)器,并且 內(nèi)容交換機(jī)使用它來(lái)保持路由到同一臺(tái)服務(wù)器的會(huì)話。 Cookie匹配
在該操作模式下,內(nèi)容交換機(jī)被配置來(lái)在cookie中查找特定的字符串,該cookie指示最早設(shè)置它的服務(wù)器。這可以是會(huì)話cookie中為此目的 唯一標(biāo)識(shí)的字符串或WebLogic程序員設(shè)置的不同的cookie。雖然,從編程的角度來(lái)說(shuō),這種方法更加復(fù)雜,但是它使得Web應(yīng)用設(shè)計(jì)者能夠更加 靈活地控制應(yīng)用的行為。(注意:Cookie匹配可用于多種場(chǎng)合,包括動(dòng)態(tài)負(fù)載分離和第三方路由。這里不具體討論這些技巧)
Cisco內(nèi)容交換機(jī)提高了站點(diǎn)安全性
Cisco內(nèi)容交換機(jī)能夠通過(guò)四種不同的方法保護(hù)WebLogic集群
訪問(wèn)控制列表
通過(guò)在內(nèi)容交換機(jī)上構(gòu)建訪問(wèn)控制列表,操作者可以控制誰(shuí)能訪問(wèn)集群成員的真實(shí)地址及誰(shuí)能訪問(wèn)交換機(jī)本身。
網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
Cisco內(nèi)容交換機(jī)執(zhí)行虛擬IP地址(代表了集群到外部世界)到集群成員的真實(shí)IP地址的NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)。這允許服務(wù)器集群成員利用 專用IP地址空間進(jìn)行編號(hào)。更重要的是,它隱藏了集群配置的內(nèi)部細(xì)節(jié)。
拒絕服務(wù)(DoS)保護(hù)
由于Cisco內(nèi)容交換機(jī)同時(shí)用到了TCP和HTTP,所以它們是在理想狀態(tài)下檢測(cè)并終止基于TCP和HTTP的拒絕服務(wù)攻擊--即在攻擊影響服務(wù)器之前 。
BEA WebLogic服務(wù)器和Cisco內(nèi)容交換機(jī)的部署
防火墻負(fù)載均衡
如果應(yīng)用程序產(chǎn)生了足夠的流量來(lái)保證額外的防火墻,可以使用Cisco內(nèi)容交換機(jī)均衡多個(gè)防火墻之間的負(fù)載。
SSL加速改善了性能并啟用了持久性
在WebLogic服務(wù)器上運(yùn)行SSL非常消耗服務(wù)器資源。Cisco SSL加速技術(shù)(在Cisco CSS 11500 內(nèi)容交換機(jī)和Catalyst 6500交換機(jī)中可用)能 夠卸去SSL處理,從而讓服務(wù)器資源能夠?qū)iT(mén)用域增值的WebLogic函數(shù)。另外,由于Cisco內(nèi)容交換機(jī)使用的持久性消息存放在HTTP頭中,當(dāng)它 裝載在SSL加密會(huì)話內(nèi)部時(shí)就再也看不到了。Cisco SSL加速技術(shù)在應(yīng)用內(nèi)容交換決策之前終止這些會(huì)話,這使得安全站點(diǎn)能夠使用前面討論的所有持久性選項(xiàng)。 高可用性和性能選項(xiàng)
除了原始的交換性能,Cisco內(nèi)容交換機(jī)還可用來(lái)伸縮WebLogic服務(wù)器性能和客戶端到服務(wù)器連接的性能。
服務(wù)器機(jī)群分割
Cisco內(nèi)容交換機(jī)能夠?qū)蝹€(gè)Web應(yīng)用的組件分割到不同的集群成員上。例如,下面的兩個(gè)URL http://www.mycompany.com/quotes/getquote.jsp 和http://www.mycompany.com/trades/order.jsp 可以位于兩臺(tái)不同的服務(wù)器上,雖然它們具有相同的URL。這使得應(yīng)用開(kāi)發(fā)人員不需要修改 多少代碼就能夠?qū)?yīng)用程序應(yīng)用到多臺(tái)服務(wù)器上。而且,它通過(guò)將同一頁(yè)面的請(qǐng)求保持在同一服務(wù)器上,最大化服務(wù)器的緩存一致性檢查(從 而最大化了性能)。另外,可以使用Cisco內(nèi)容交換機(jī)將對(duì)可緩存內(nèi)容(如圖像文件)的請(qǐng)求推到一組緩存上,該緩存比應(yīng)用服務(wù)器本身具有更 高的效率。
HTTP1.1連接的重新映射
使用HTTP1.1時(shí),客戶端可能在同一TCP連接上請(qǐng)求多個(gè)URL。通過(guò)減少TCP連接維護(hù)的開(kāi)銷,可以使得客戶端和服務(wù)器能夠更加有效地運(yùn)行。 當(dāng)內(nèi)容被分割并/或緩存到多個(gè)服務(wù)器上(如前一節(jié)所描述)時(shí),必須能夠通過(guò)相同的HTTP1.1連接將不同內(nèi)容段的多個(gè)HTTP GET發(fā)送到不同的服務(wù)器上??蛻舳薍TTP1.1連接必須從一臺(tái)服務(wù)器"重新映射"到另一臺(tái)服務(wù)器。Cisco內(nèi)容交換機(jī)執(zhí)行該功能以最 大化連接效率。
小結(jié)
BEA WebLogic服務(wù)器包含高級(jí)的集群功能,以便根據(jù)情況伸縮應(yīng)用。Cisco內(nèi)容交換機(jī)通過(guò)理解基于Web的事務(wù)的本質(zhì),并且及時(shí)地將它們路 由到最適合的服務(wù)器,最大化了BEA WebLogic服務(wù)器集群的性能、可用性和安全性。該組合解決方案帶來(lái)了最大的終端用戶體驗(yàn)。
參考
http://www.bea.com/products/weblogic/server/paper_wls_clustering.pdf
轉(zhuǎn)載于:https://www.cnblogs.com/menghe/articles/226857.html
總結(jié)
以上是生活随笔為你收集整理的最大化BEA WebLogic Cluster的性能、可用性和安全的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubuntu18.04新安装时Unabl
- 下一篇: K线理论--单根K线形态