2013-07-04 112 views
1

我想知道EJB會話Bean池如何在羣集環境中工作,假設如果有三個羣集節點並且一個節點關閉,那麼將如何複製會話Bean池並請求相同的請求操作將在另一個節點上繼續。謝謝Shailendra Singh羣集環境中的EJB會話Bean池

回答

4

這是一個比較難回答你的問題,因爲我認爲你需要關於羣集的更多背景,但我會努力...

一個用於建設的主要動機羣集將爲您的應用程序提供名爲High Availavility的屬性,即儘管發生硬件故障或維護任務(例如更新新軟件版本)需要完成,但系統仍可繼續工作。

實現此目的的最簡單方法是使用負載平衡這意味着當羣集節點發生故障時,傳入請求將由其他活動節點管理。

具體談論EJB服務;負載平衡是由EJB客戶端的存根完成的,存根具有一個包含集羣節點IP的列表。每次客戶需要提出請求時,存根會從列表中選擇一個IP。如果一個節點發生故障,那麼在節點恢復之前,他的IP將不可用。如你所見,節點之間沒有數據複製,只是負載平衡。 (EJB不知道這個過程)

如果集羣是異構的,由於客戶端需要名爲HA-JNDI的服務來查找存根,事情會更加複雜。

有些應用(極少數)需要特殊要求,因此有時候負載均衡是不夠的;例如當一個節點發生故障時,將處理下一個客戶端請求的新節點必須知道該節點正在管理的信息狀態。如果信息先前至少在其他羣集節點中複製,則可以完成此操作。添加狀態複製時,您的應用程序具有容錯功能。

這種狀態複製是由被稱爲分佈式緩存一個特殊的應用程序服務器的組件完成的,作爲開發商,你的主要職責是告訴需要複製該信息(服務)的應用程序服務器,多久等

希望這有助於你作爲下一篇閱讀的起點。

注意:EJB池是其他應用程序服務器服務,並且與羣集無關。

+0

謝謝!這真的有幫助。 –

0

羣集EJB具有故障轉移功能。 @Stateful @Clustered EJB的狀態跨集羣節點複製,因此如果集羣中的某個節點關閉,其他節點將能夠接管調用。

更多信息請訪問link

+0

謝謝!非常有幫助。 –

+0

感謝您的回答 –