javascript - Node.js HTTP 代理架构 : downloading big amount of data for client

标签 javascript node.js architecture

我需要:编写一个代理服务器来为我的客户端下载音乐。假设每个客户端想要下载 20-200 首作品(400MB-4GB 的音乐),我必须同时支持许多用户。

问题:关于如何编写该服务器,我听到了截然不同的推理:在主事件循环中或为每个用户打开新的工作线程。

我的流程:

  1. 用户请求服务器下载数据
  2. 服务器下载数据并将其立即流式传输到客户端

问题: 一个线程或多个工作线程可以满足我的需求?为什么?

最佳答案

假设有几个工作线程,因为它经常需要打开 tcp 连接(阻塞主线程),并且您的回调将等待主线程队列。 你的 HTTP 服务器有很多工作人员吗?在我看来,好的决定是让多个工作进程绑定(bind)到您的 HTTP 端口,并且每个工作进程都是一个代理。 如果您的应用已经集群化,那么也许使用 MQ + 代理集群是合理的。

关于javascript - Node.js HTTP 代理架构 : downloading big amount of data for client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227462/

相关文章:

javascript 警报拒绝在表单验证中工作?

javascript - Express 在 6 次请求后不再接受邮寄请求

c++ - qmake:检测目标位宽(32 位或 64 位)

java - 如何重新设计 java 应用程序以在新线程中提供另一个变量副本?

javascript - 可折叠缩进树的初始状态

javascript - 如何导出模块

javascript - jquery Slider - 如何计算百分比

node.js - 当我运行 gulp 命令时,我的文件失去权限

node.js - AWS Lambda 函数在完成请求之前退出

python - 有没有一种可靠的方法可以使用 Python 确定系统 CPU 架构?