Ale*_*lls 6 javascript http multiprocessing node.js express
使用Node.js服务器,我想知道它是否可能并且建议从委派的工作进程而不是主进程发送HTTP响应.这些工作进程可以是Node.js服务器本身,也可以是通过IPC进行通信的Node.js子进程.
我不认为集群核心模块https://nodejs.org/api/cluster.html可以做我想做的事情,因为在该模型中,所有工作人员都在监听同一个端口,并且他们处理所有请求代表主进程.我正在寻找的是一个响应所有HTTP请求的主要Node.js进程,可能是进行身份验证并处理某些请求,但也能够将数据密集型或CPU密集型请求委派给工作池.
想象一下,我们有大量数据的GET请求,比如说2-3MB.
我们至少有三种可能的情况:
我对使#3成为可能感到特别好奇.
方案3的简单描述如下:
(为了清楚起见,我不希望一个请求有3个响应,我只是想表明一个工作者可能代表主进程发送响应).
任何人都知道这可能与Node.js一起使用吗?如何在其他语言中使用?通常我对Node.js并发模型没有任何问题,但是对于某些类型的数据,使用Cluster模块可能不是实现最高并发级别的最佳方法.
我相信这个模型的一个术语是"直接响应",这意味着工作者直接响应请求.也许可以简单地使用集群核心模块https://nodejs.org/api/cluster.html.
我想知道是否可以并且建议从委托工作进程发送 HTTP 响应
是的,这是可能的,而且可能是扩展应用程序服务器的最简单、最常见的方法。与 IPC 不同,它可以通过网络跨主机工作。(如果你愿意的话,它也可以在本地工作......但请确保你的应用程序实际上是受 CPU 限制的。尽管 JavaScript 本身是单线程的,但大多数 IO 库和一些 NPM 模块都使用线程池。 )
没有理由使用 Node.js 作为后端服务器之间的服务器负载平衡。Node.js 更适合您的应用程序服务器。对于仅代理 HTTP 请求的东西,我会使用 Nginx 或类似的。Nginx 可以高效地处理所有与客户端的事务,并且可以轻松配置负载均衡。
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |