2012-03-20 42 views
4

環境:部署在IBM的Websphere 7集羣節點具有高可用性

  • 的Java EE Web應用程序
  • JDK 1.6,
  • AS:的Websphere應用服務器7,
  • OS:redhatzLinux

我不是一個websphere管理員,我被要求開發一種方法或腳本來解決以下問題:

我有一個具有三個節點NodeA NodeB和NodeC的羣集。我的應用程序在這些羣集上運行我想在這些節點上部署我的應用程序,這樣我就不需要一次把它們全部關閉。現在部署工作就是這樣完成的:我們晚上到來從控制檯一下子停止所有的服務器。然後,我們將該應用程序安裝在與部署管理器位於同一臺機器上的主節點上,然後我們同步並將所有服務器逐一備份。

我所要求做是我們升級應用程序,或不將都記錄下來,因爲這是造成停機的應用程序安裝新的EAR文件。有沒有辦法實現這一目標? WAS 7是一款非常成熟的產品,我相信肯定有辦法做到這一點。

我查看了文檔/教程,我們可以在其中選擇應用程序(從Apllications> websphere企業應用程序),然後選擇更新,然後選擇單選按鈕「替換整個應用程序」和單選按鈕「本地文件系統「並指向新的ear文件。但在這種情況下,文檔說它會在更新時關閉所有服務器。它和以前一樣。沒有在線部署。

我是一個Java程序員,所以我想用什麼工具,我必須解決這個

告訴我,如果這是可能是一個問題

1)我們打倒NODEA 2)我們從集羣中刪除NODEA(通過按刪除節點按鈕或使用removeNode.sh) 3)在NODEA上安裝新的Ear(我們可以在同一個管理控制檯中?或通過shell腳本或jython或可能就像一個獨立的服務器) 3)然後,我們再次啓動它然後將其添加到羣集。 現在,我們有NODEA與新的應用程序,而NODE B和NODEC與舊的應用程序版本。

然後我們打倒NODEB從集羣 刪除NODEB安裝在NODEB applciation 啓動它再次 重新添加到集羣

現在我們有新的應用程序和NODEC老

兩個節點我們爲NODEC嘗試相同的過程。

請問這項工作。有沒有人試過這個。你能想到哪些問題會發生。

我很欣賞這裏的任何反饋。我相信在這個論壇上有經驗的人。我不認爲這是一個罕見的問題,我相信這是任何組織希望獲得高可用性要求的東西。

感謝您提前提供任何幫助。 Syed ...

回答

2

這是一個可能的重複How can i do zero down time deployment on cluster environment?。這裏基本上是我對這個問題的回答:

更新應用程序後,您可以使用「Rollout Update」功能。更新之後,您可以使用此功能自動執行以下任務,以使更改傳播到所有部署目標,同時保持高可用性(假設您有一個水平集羣,以使集羣成員存在多個集羣成員)節點,其聽起來你做):

  1. 保存會話改變到主配置
  2. 對於簇中(每個節點一次一個,以使連續的可用性):
    1. 停止節點上的羣集成員
    2. Syn chronize節點
    3. 啓動應用程序服務器(自動啓動應用程序)
+0

@shelly感謝您的答覆,有人還建議相同的,我沒有嘗試,但它未能在推出更新的一部分,當我點擊部署更新它說:「開始部署更新「,然後」comiting主存儲庫「,然後」提交未能保存到主存儲庫「我試了兩次,但沒有奏效。這裏可能是什麼問題。 – sarmahdi 2012-03-24 13:32:12

+1

「推出更新」是在維護HA的同時更新應用程序的適當方式。至於你嘗試過的具體問題,我不確定。日誌中是否有任何內容,或者您​​可以提供的任何其他上下文或信息?這可能有助於提出一個單獨的問題來解決該問題。 – shelley 2012-03-26 13:56:44

0

或者,你可以按照下面的步驟。

  1. 停止除節點A.所有nodeagents
  2. 註釋掉或負載均衡器或插件禁用節點A(所以流量不會來的節點)
  3. 部署應用程序。
  4. 更改將僅在節點A上同步,因爲其節點代理已啓動。
  5. 從插件/負載均衡器取消註釋/啓用節點A.

  6. 從插件/負載均衡器註釋/禁用節點B以停止在節點上傳輸流量。

  7. 啓動節點B的節點代理,以便它將同步節點上的文件更改。耳朵應用程序將停止並在同步後啓動。
  8. 從插件/負載均衡器取消註釋/啓用節點B.

對所有其餘節點重複步驟6,7,8。

問候, Laique艾哈邁德