【发布时间】:2016-03-07 19:26:21
【问题描述】:
我需要在一个机器上运行 Node 服务器以开发多个独立项目。
在基于虚拟主机的前端路由中使用 Nginx,运行 15 个以上的 node 实例单独工作通常不是什么大问题。问题是刚开始 node 时,很多时候我的所有 RAM 都被内部库的开销占用了。
那么是否存在解决方案,允许我在共享核心库的同时运行几个很大程度上独立的节点服务器?以下是我考虑过的:
- 线程而不是进程 - 将存在一个能够为每个实例创建一个新线程的主控制进程。我知道 Node 的构建不需要线程,但有没有办法利用它们来节省内存?
- Node 的一些库或附加功能允许我执行上述操作。
- 进程之间共享核心内存——这对 Node 来说有可能吗?
- 只需将每台服务器中的
require ()ing 放到同一个节点实例上——我无法想象杀死或重新加载这些服务器是如何工作的。有没有办法unrequire并重新启动外部模块?通过允许共享其他库(例如 Socket.IO),此方法可能是理想的。
无论如何,这可能是一个边缘案例,所以我对解决方案不明显并不感到惊讶。
有人知道实现这个的方法吗?
【问题讨论】:
-
我的具体环境是:我想使用树莓派来托管我为家人创建的几个项目。这些项目都有自己的(相当轻量级的)Node API 服务器,但是 Pi 没有足够的内存在自己的进程中运行它们。
标签: javascript node.js multithreading shared-memory