Node.js HTTP代理架构:为客户端下载大量数据

时间:2014-12-01 11:30:40

标签: javascript node.js architecture

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

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

我的流程:

  1. 用户要求服务器下载数据
  2. 服务器下载数据并立即将它们传输到客户端
  3. 问题: 我需要一个线程或多个工作人员?为什么?

1 个答案:

答案 0 :(得分:1)

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