繁体   English   中英

在Openshift上热部署node.js应用程序时会发生什么情况?

[英]What happens precisely when hot deploying a node.js application on Openshift?

文档我能找到的,我不明白,当一个什么恰恰发生node.js应用Openshift被热部署。

以下假设是否正确?

  1. 现有的node.js应用程序已停止。
  2. 启动具有新推送代码的新node.js应用程序。
  3. 现有node.js应用程序中内存中的任何内容都不会转移到新的内存中。
  4. 如果这些应用程序使用数据库(在其他盒式磁带中),则不会重新启动该数据库。 现有应用程序关闭其连接,新应用程序创建一个新的连接。
  5. 因此,如果您需要运行新推送的node.js代码所需的数据库脚本,则不建议使用热部署。

我试图从一些官方资源中找到很多关于openshift上热部署的文档,但是除了这些 ,我什么都看不到,

我不说我真的回答你的问题,但这里是一些关于热部署的方式,每个人都必须阅读

它只是创建一个服务器来监视对js文件的更改,现在,每当您修改js时,代码都会注意到并用新代码替换本地js。 任何现有的请求将继续使用旧代码,而任何新的传入请求将使用新代码。 所有这些都无需关闭服务器,弹跳任何请求,过早地杀死任何请求,甚至无需依靠智能负载平衡器。

我猜想启用热部署标记后,openshift会做同样的事情(我不确定,事实可能并非如此)。 现在,在这种情况下,回到您的问题:

  1. 停止现有的node.js应用程序,并启动具有新推送代码的新node.js应用程序:

  2. 如果这些应用程序使用数据库(在其他盒式磁带中),则不会重新启动该数据库。 现有应用程序关闭其连接,新应用程序创建一个新应用程序:

我想回答这个问题最好的办法就是去

作为构建生命周期(git commit)的一部分使用的post_deploy控制操作称为get。

根据盒带的配置方式(如果您使用的是npm,如果您使用的是主管),则盒带的行为会有所不同。 如果使用NPM,则墨盒将重新启动;如果您未使用管理程序,则墨盒将重新启动。 仅当您使用NPM并且Supervisor正在运行时,热部署功能才能按照文档中的说明运行

热部署您的应用程序使更改无需重新启动应用程序盒即可生效,从而提高了部署速度并最大程度地减少了应用程序停机时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM