如何在不停机的情况下更新Java EE应用程序?

时间:2010-02-02 22:30:22

标签: java-ee upgrade downtime

我如何实现自动化(无停机)部署? 并且可以关闭任何服务器进行维护 我应该使用哪些工具?

我正在使用Tomcat,但我愿意转移到最适合所提出要求的其他Java EE服务器。

我想知道准备好使用配置细节。

2 个答案:

答案 0 :(得分:3)

如果你有两个tomcat在集群中运行(在负载均衡器后面或在apache后面),那真的很容易。

  1. 将服务器1从群集中取出,更新服务器。
  2. 重新启动服务器1。
  3. 将服务器2从群集中取出,更新服务器。
  4. 重新启动服务器2。
  5. 如果您正在完全重新部署应用程序,则其他任何操作都会导致停机(无论多么简短)。

    如果您可以容忍一小部分停机时间(<1秒),那么您可以通过部署到第二个tomcat实例来模拟这个,然后将您的负载均衡器指向第二个实例。在这种情况下,您将丢失所有活动会话,但切换应该非常快。

    在这两种情况下都存在数据库同步问题,但您必须解决这些问题。

答案 1 :(得分:3)

自WebLogic 9以来,WebLogic具有允许部署新版本应用程序而无需停机的功能,这称为并行部署:

  

并行部署:BEA WebLogic Server 9.0支持部署   多个版本的相同   跨WebLogic群集的应用程序;   新的客户端请求被路由到   新版本并没有影响   旧版本的现有客户端。   BEA WebLogic Server将自动执行   退休旧版本的   申请一次所有现有客户   已完成处理。这个   消除了构建的需要   复制的生产版本   环境,部署两个不同的   两个环境中的版本,或使用   负载平衡器切换应用程序   流量到新版本。

WebLogic Server还支持whole server-level migration,其中可迁移服务器实例及其所有服务将迁移到其他物理计算机。这可以用于服务器维护。

请注意,并非所有平台都支持整个服务器迁移,并且显然具有不可忽略的成本(就基础架构而言)。