2010-12-16 84 views
1

我對運行JBoss ESB 4.9的JBoss應用程序服務器(5.1)的故障轉移有疑問。我將與圖開始:JBoss應用程序服務器的故障轉移

diagram

我們有一個傳統傳輸(「傳統運輸」)產生的數據的傳統應用程序(「傳統監製」)。我們編寫了一個ESB服務(「網關」),用於監聽傳統傳輸並將收到的消息放入ESB。這些消息遵循幾個編排步驟進行處理。

這適用於正在運行的一個應用程序服務器。但是,我們希望允許應用程序服務器發生故障。那麼,一個天真的解決方案就是在集羣配置中站出兩個這樣的應用程序服務器(如圖所示)。但是,由於這會導致複製網關服務,因此每個消息的兩個副本將在ESB上發佈並進行處理,這是不希望出現的結果。

實現此類故障轉移的正確方法是什麼?

回答

1

正確的方法是在節點之間使用JMS集羣。您需要查看AS/JBoss Messaging(或HornetQ)文檔,瞭解如何執行此操作,ESB不包含任何快速入門來演示此操作。

它可能需要一些步驟來發布jUDDI信息以及兩個節點,但是手冊中有說明如何做到這一點。檢查程序員指南「7.1。故障轉移和負載平衡支持」

+1

更具體地說,如果「Legacy Transport」是基於文件系統的,那麼如何確保兩個實例之間沒有出現近端競爭條件FileGatewayListeners,例如:一個文件出現在受監視的文件夾中,兩個監聽器同時觸發,一個監聽器通過追加.inProgress後綴重命名該文件,稍微慢一點的文件因爲它已經被重命名而無法重命名文件?有沒有可以防止這個問題的集羣配置? – 2012-02-07 13:08:33