0

Node.JS 的实时更新代码能力和自动隔离异常的能力似乎有限。这两者在 Java 中实际上都是默认的。

实时更新的一种非常有效的方法是拥有一个侦听器进程,它简单地回显与子进程的通信。然后更新,监听器启动一个新的孩子(它会自动读取更新的代码),然后开始向新的孩子发送请求,当所有请求都完成时结束旧的孩子。

  • 是否已经有一个系统通过 stdout/stdin 提供此 http 功能。
  • 是否有通过 stdout/stdin 提供 TCP 服务器或 UDP 服务器功能的系统。

我的意思是,提供一个看起来像httpornet模块的模块,但它使用标准输出/标准输入作为底层 I/O。

类似于这个 CGI 模块

一些应用程序只需更改require('http')require('cgi')

我打算做类似的事情。我希望重新使用已经存在的代码,并且还希望轻松地将小型或单一用途的网络服务器转换为运行许多网络应用程序的侦听器层。正确进行清理很重要。结束或错误的连接应该被释放,结束/错误事件/命令应该以两种方式正确回显。

(我相信一种常见的方法是让孩子在端口上监听,而父母与这些端口进行通信,但我认为 stdout/stdin 解决方案会更有效)

4

2 回答 2

0

使用nginx ( HttpUpstreamModule ) 或HAProxy。在这两种情况下,您都会在前面运行它们并将后端标记为关闭,然后在需要进行实时升级时将其重新启动。

于 2011-07-25T17:57:03.993 回答
0

我不确定这是否是您正在寻找的(实际上,我不确定我是否理解您的问题),但 Remy Sharp 编写了一个非常有用的节点模块,称为nodemon。它承诺“监视您的 node.js 应用程序中的任何更改并自动重新启动服务器。” 这可能有助于解决实时更新代码的问题。

于 2011-12-05T20:10:53.153 回答