[英]Hot Deploy a Java EAR to Minimize or Eliminate Downtime of an Application on a Server?
我聽說這是JavaRebel所做的,但有沒有其他好的方法來部署新版本的EAR,同時允許用戶在以前的版本上保持活動狀態? 我們將JBoss用於應用服務器......
這不是JavaRebel所做的。 JavaRebel(根據描述)熱替換內存中的類。 在與系統的現有連接的情況下,這是不可接受的,因為更新的類可能會破壞客戶端的邏輯。
一旦我工作的公司有類似的問題,它就這樣解決了:
現在,我不是一個網絡人,也不能給你很多細節(比如什么是路由器硬件等)。 我的理解可以很簡單,但是,如果我沒記錯的話,我們必須設置一個額外的Weblogic域來部署應用程序的新版本(否則它將與JNDI名稱上的舊版本沖突)。
希望有所幫助。
PS Ichorus提供了一條評論說該應用程序部署在客戶端的服務器上。 所以路由器技巧可能不可行。 現在,我現在只看到一個可行的解決方案(現在是21:52,我可能忽視了一些事情:)) -
這種方法需要仔細規划和測試,但應該工作恕我直言。
我最近以類似的方式修改了一些應用程序,讓它們在同一個域中共存(在它們為不同的數據源使用相同的JNDI名稱之前)。
據我所知,WebLogic有一個稱為並行部署的功能,可以消除EAR版本升級期間的停機時間。 您可以在不停止現有應用程序的情況下部署新版本,並且在成功部署新版本后,您可以透明地從舊版本切換到新版本。
我不確定其他應用程序服務器是否支持此功能。
參考: http://edocs.bea.com/wls/docs100/deployment/redeploy.html#wp1022490
弗拉基米爾關於使用負載均衡器的建議是實現你想要的非常可靠的方法。 請記住,它不一定是高端硬件負載平衡器。 相反,如果您使用本機Web服務器(Apache或IIS)和mod_jk或mod_proxy來安裝JBoss服務器,則可以維護一個公共Web外觀並在EAR升級時實現適用的加載和路由例程。
//尼古拉斯
我想你可能想要使用OSGI框架來研究Spring。 http://www.springframework.org/osgi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.