2011-04-12 57 views
5

我为我的Web应用程序使用Glassfish Java和JSP over MySQL。许多网上用户使用这个网络应用程序,该网站不应该停机。部署一个应用程序而不取消部署前一个应用程序而不停机?

当我想部署一个新的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?

回答

5

有Java技术,将让您在飞行(如JRebel的)替代类。但是既然你已经使用了Glassfish,你应该开始使用Glassfish中内置的集群。您将需要2.1或3.1,因为3.0不支持群集。通过Glassfish集群,您可以拥有一个负载平衡器(Apache,Sun Web Server,硬件(Big IP,Coyote)等),将负载分散到集群节点中。当你想升级应用程序时,你可以在技术上一次完成一个节点。建立集群不是世界上最简单的事情,但它是可行的,它会给你带来很多好处。您可以通过添加新硬件,甚至使用Amazon(或其他)云服务来扩展负载。即使硬件在其中一个节点上出现故障,您也可以保持网站正常运行。

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

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

0

吉姆是正确的,最好的解决方案是目前使用的群集和手动执行滚动升级。

但实际上有工作正在进行,以满足您的需求。我们正在一个独立的实例中使用滚动升级功能。总而言之,由于规范尚未发布,它将允许您从应用程序版本切换到另一个版本(请参阅应用程序版本控制和启用命令),而不会停机。敬请关注。

+0

这方面的进展如何? – Kevin 2014-02-16 02:13:37