部署应用程序而不取消部署前一个应用程序并且没有停机时间?

时间:2011-04-12 08:36:13

标签: deployment glassfish

我使用Glassfish Java和JSP over MySQL作为我的Web应用程序。许多在线人员使用此Web应用程序,该网站不应该关闭。

当我想部署一个新的war文件时,我应该取消部署并在服务器上为我的应用程序部署新的war文件。

我的问题是;

Is there any technology that doesn't need to undeploy my application and just change the appropriate classes so no need to redoploy it again?

2 个答案:

答案 0 :(得分:5)

有些Java技术可以让你动态替换类(比如JRebel)。但是既然你已经使用了Glassfish,你应该开始使用内置于glassfish中的聚类。您需要2.1或3.1,因为3.0不支持群集。使用Glassfish群集,您可以使用负载均衡器(Apache,Sun Web Server,硬件(Big IP,Coyote)等)在群集节点之间分配负载。当您想要升级应用程序时,您可以在技术上一次完成一个节点。设置群集并不是世界上最容易的事情,但它是可行的,它会带给你一些很大的好处。您将能够通过添加新硬件甚至使用亚马逊(或任何人)云服务来扩展负载。即使硬件在其中一个节点上出现故障,您也可以保持站点正常运行。

就个人而言,我正处于从Glassfish 2.1转换为3.1的过程中。到目前为止,我更喜欢Glassfish 3.1集群的管理,但我不能亲自担保它将如何在生产中运行,尽管我有很高的期望。

http://download.oracle.com/docs/cd/E18930_01/html/821-2432/gktqx.html#gktob

答案 1 :(得分:0)

Jim是对的,目前最好的解决方案是使用群集并执行手动滚动升级。

但实际上正在努力解决您的需求。我们正在单个独立实例中进行滚动升级功能 。总而言之(因为规范尚未发布),它将允许您从应用程序版本切换到另一个版本(请参阅应用程序版本控制和启用命令),无需停机。请继续关注。