1. 程式人生 > >WebLogic多播地址是否可以和應用共用,比如JGroup

WebLogic多播地址是否可以和應用共用,比如JGroup

引自:http://www.oraclefmw.com/wls92/cluster/features.html

群集中的 WebLogic Server 通訊
群集中的 WebLogic Server 例項使用兩種基本網路技術互相通訊:

•IP 多播,伺服器例項使用該技術來廣播服務和心跳(表明持續的可用性)的可用性。
•IP 套介面,這是群集伺服器例項之間進行端到端通訊的管道。
WebLogic Server 使用 IP 多播和套介面通訊的方式會影響群集的配置方式。

使用 IP 多播的一對多通訊
IP 多播是一種簡單的廣播技術,使多個應用程式能夠“訂閱”某個給定的 IP 地址和埠號,並監聽訊息。多播地址是一個介於 224.0.0.0 到 239.255.255.255 之間的 IP 地址。

注意: WebLogic Server 使用的預設多播值為 239.192.0.0。不應使用 x.0.0.1 範圍內的多播地址。

IP 多播嚮應用程式廣播訊息,但是不能保證這些訊息真正被接收到。如果應用程式的本地多播緩衝區已滿,則新的多播訊息則無法寫入該緩衝區,當訊息被“丟棄”時,也不會通知該應用程式。因為此限制,所以 WebLogic Server 例項允許存在偶爾丟失通過 IP 多播廣播的訊息的可能性。

WebLogic Server 對於群集中伺服器例項之間的所有一對多通訊均使用 IP 多播。此類通訊包括:

■群集範圍的 JNDI 更新 - 群集中的每個 WebLogic Server 例項均使用多播來公告本地部署或本地刪除的群集物件的可用性。群集中的每個伺服器例項都監視這些公告,並更新其本地 JNDI 樹以反映群集物件的當前部署。有關詳細資訊,請參閱群集範圍的 JNDI 命名服務。
■群集心跳 - 群集中的每個 WebLogic Server 例項均使用多播來廣播通告其可用性的規律的“心跳”訊號。群集中的伺服器例項通過監視心跳訊號來確定某個伺服器例項的失效時間。(群集伺服器例項也會監視 IP 套介面,以此作為確定伺服器例項失敗時間的一種更為即時的方法。)
多播和群集配置
因為多播通訊控制著與檢測故障和維護群集範圍的 JNDI 樹(如群集範圍的 JNDI 命名服務中所述)相關的重要功能,所以確保群集配置和網路拓撲結構不干擾多播通訊是極為重要的。以下部分提供了有關在群集中避免多播通訊出現問題的指南。

如果群集跨越 WAN 中的多個子網
在很多部署中,群集伺服器例項都位於一個子網中,從而確保了多播訊息的可靠傳輸。但是,您可能希望將 WebLogic Server 群集分佈在廣域網(Wide Area Network,簡稱 WAN)中的多個子網中來增加冗餘性,或者在一個更大的地理區域內分佈群集伺服器例項。

如果選擇將群集分佈在 WAN 上(或跨多個子網),則請對網路拓撲結構進行計劃和配置,以確保多播訊息可以可靠傳輸到群集中的所有伺服器例項。具體來說,您的網路必須滿足下列要求:

■完整支援 IP 多播資料包傳播。換句話說,必須配置所有路由器和其他隧道技術以便將多播訊息傳播到群集伺服器例項。
■網路滯後足夠低,可以確保大多數多播訊息均可在 200 到 300 毫秒內到達其最終目標。
■群集的多播生存時間(Time-To-Live,簡稱 TTL)值足夠高,可以確保在多播資料包到達其最終目標之前路由器不會放棄這些資料包。有關設定多播 TTL 引數的說明,請參閱配置多播生存時間 (TTL)。
注意: 除了上述多播要求之外,在 WAN 上分佈 WebLogic Server 群集可能還需要一些網路工具。例如,您可能想配置負載平衡硬體來確保客戶端請求以最高效的方式指向伺服器例項(以避免不必要的網路躍點)。

防火牆可能會中斷多播通訊
儘管可以使多播流量以隧道方式通過防火牆,但是對於 WebLogic Server 群集不推薦此方法。請將每個 WebLogic Server 群集視為向 Web 應用程式的客戶端提供一個或多個獨特服務的邏輯單元。不要在不同的安全區域之間拆分此邏輯單元。另外,可能延遲或中斷 IP 流量的任何技術都可能會因為心跳丟失而生成錯誤故障,從而干擾 WebLogic Server 群集的執行。

[color=red]不要與其他應用程式共享群集多播地址
儘管多個 WebLogic Server 群集可以共享一個 IP 多播地址和埠,但是其他應用程式不應廣播或訂閱您的一個或多個群集使用的多播地址和埠。就是說,如果承載群集的一臺或多臺計算機同時承載著使用多播通訊的其他應用程式,則請確保這些應用程式使用的多播地址和埠與該群集不同。

與其他應用程式共享群集多播地址會強制群集伺服器例項處理不必要的訊息,從而導致不必要的開銷。共享多播地址還會使得 IP 多播緩衝區超載,並延遲 WebLogic Server 心跳訊號的傳輸。這樣的延遲會導致將 WebLogic Server 例項標記為失效,這僅僅是因為未及時收到其心跳訊號。

因為上述原因,所以要分配一個專門的多播地址用於 WebLogic Server 群集,並確保該地址可以支援使用該地址的所有群集的廣播流量。 [/color]
如果發生多播風暴
如果群集中的伺服器例項未及時處理傳入的訊息,則可能會導致網路流量增加,這些流量包括 NAK 訊息和心跳重新傳輸。網路上重複傳輸多播資料包的現象稱為“多播風暴”,它可能會加大網路和相連站的負擔,從而可能導致端站掛起或失敗。增大多播緩衝區的大小可能會提高公告傳輸和接收的速率,防止發生多播風暴。請參閱配置多播緩衝區大小。