首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -热部署

Java -热部署
EN

Stack Overflow用户
提问于 2012-03-20 23:13:09
回答 5查看 4.4K关注 0票数 4

最近,我在读一本关于Erlang的书,它有热部署功能。可以在不关闭系统的情况下完成部署。所有现有的请求将由旧版本的代码处理,所有部署后的新请求将由新代码提供服务。在这些情况下,运行时中可用代码的两个版本都会持续一段时间,直到所有旧请求都得到服务。在Java中有什么方法可以保存两个版本的jar文件吗?是否有任何应用程序/web服务器支持此功能?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-20 23:27:39

在Java世界中实现热部署的方法有很多种,因此您可能需要更具体地说明您的上下文以及您试图实现的目标。

这里有一些值得考虑的好线索/选项:

  • OSGi是一个通用的模块系统,支持热deployment
  • Clojure是一种动态的JVM虚拟机语言,支持大量的运行时交互。Clojure通常用于“实时编码”--几乎任何东西都可以在运行时进行热插拔和重新定义。Clojure是一种函数式语言,非常强调不变性和并发性,因此在某些方面与Erlang有一些有趣的相似之处。Clojure有一些非常好的web框架,比如Noir,它们适用于热插拔web服务器代码,
  • The Play Framework的设计目的是为了提高工作效率(避免web服务器重启)。如果您主要关注热插拔web applications.
  • Most Java应用程序服务器(如JBoss )支持针对web applications.

的某种形式的热插拔,则可能与此相关

票数 2
EN

Stack Overflow用户

发布于 2012-03-21 21:09:13

如果您的意图是加速开发,那么JRebel就是一个可以达到此目的的工具。但是,我不建议使用它来修补生产系统。

JRebel会检测到类文件何时发生更改,并将其重新加载到正在运行的应用程序服务器中,而不会丢弃任何旧状态。与大多数应用服务器在重新部署整个war/ear时所做的操作相比,这要快得多,因为在war/ear中,整个初始化过程必须重新运行。

票数 4
EN

Stack Overflow用户

发布于 2012-03-25 19:30:53

对生产应用程序进行热更新的唯一原因是为用户提供零停机时间。

例如,LiveRebel (基于JRebel)是可以与Jenkins结合使用的工具。它可以在耗尽生产集群上的会话的同时,执行安全的热修补以及滚动重启。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9789483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档