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