如何扩展使用其他服务的Node.js服务?

时间:2012-10-11 23:34:19

标签: node.js rest heroku

我已经构建了一个使用其他两个服务的JSON服务,每个服务都有一些延迟,并且由于这种依赖性,每个请求最多需要800毫秒才能完成。

我使用Node.js的主要原因之一是用于事件IO。我希望新的请求能够顺利处理,而不是挂起,因为慢速请求正在完成。

我如何测试服务并获得一些关于我的服务将如何在Heorku上执行的可靠指标 - 这很难弄明白,因为我不想达到我依赖的其他服务的查询限制。我的服务会接受多少个同时请求?我该怎么做才能最大化这个数字?

此外,我想得到一些反馈,关于Node.js是否会在这种情况下为我提供更好的性能,比如Rails?

(哦,并且...... Heroku是部署服务的不错选择吗?抱歉......我是Node的新手。)

非常感谢。

1 个答案:

答案 0 :(得分:2)

首先,您不应该使用内存会话,而是使用数据库会话,Memcached或Redis会话来共享状态。

其次,您应该将延迟的流程分隔为worker process并使用工作队列来添加和获取这些延迟的作业。您可以将Redis用作kue的队列,或者使用其他消息队列是很好的选择。

第三,确保在节点代码上保持非阻塞状态。 process.nextTick是关键。


您可以使用Blitz测试多个同时发出的请求,{{3}}是 Heroku 的加载项之一。