最近,我在读一本关于Erlang的书,它有热部署功能。可以在不关闭系统的情况下完成部署。所有现有的请求将由旧版本的代码处理,所有部署后的新请求将由新代码提供服务。在这些情况下,运行时中可用代码的两个版本都会持续一段时间,直到所有旧请求都得到服务。在Java中有什么方法可以保存两个版本的jar文件吗?是否有任何应用程序/web服务器支持此功能?
发布于 2012-03-20 23:27:39
在Java世界中实现热部署的方法有很多种,因此您可能需要更具体地说明您的上下文以及您试图实现的目标。
这里有一些值得考虑的好线索/选项:
的某种形式的热插拔,则可能与此相关
发布于 2012-03-21 21:09:13
如果您的意图是加速开发,那么JRebel就是一个可以达到此目的的工具。但是,我不建议使用它来修补生产系统。
JRebel会检测到类文件何时发生更改,并将其重新加载到正在运行的应用程序服务器中,而不会丢弃任何旧状态。与大多数应用服务器在重新部署整个war/ear时所做的操作相比,这要快得多,因为在war/ear中,整个初始化过程必须重新运行。
发布于 2012-03-25 19:30:53
对生产应用程序进行热更新的唯一原因是为用户提供零停机时间。
例如,LiveRebel (基于JRebel)是可以与Jenkins结合使用的工具。它可以在耗尽生产集群上的会话的同时,执行安全的热修补以及滚动重启。
https://stackoverflow.com/questions/9789483
复制相似问题