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

标签 node.js rest heroku

我构建了一个 JSON 服务,该服务使用另外两个服务,每个服务都有一定的延迟,由于这种依赖性,每个请求可能需要长达 800 毫秒才能完成。

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

我如何测试服务并获得一些关于我的服务在 Heorku 上的执行情况的可靠指标——这很难弄清楚,因为我不想达到我所依赖的其他服务的查询限制。我的服务将接受多少个并发请求?我可以做什么来最大化这个数字?

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

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

非常感谢。

最佳答案

首先,您不应该使用内存 session ,而应使用 DB session 、Memcached 或 Redis session 来共享状态。

其次,您应该将延迟进程与工作进程分开,并使用工作队列来添加和获取这些延迟作业。您可以使用Redis作为队列,即kue或使用其他消息队列是不错的选择。

第三,确保 Node 代码保持非阻塞。 process.nextTick 是关键。

<小时/>

您可以使用 Blitz 测试多个并发请求这是 Heroku 上的附加组件之一。

关于node.js - 如何扩展使用其他服务的 Node.js 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12850201/

相关文章:

java - 如何使用 Security and Session Spring 和 RestTemplate 为 android 创建登录和 session 管理

javascript - $scope 不从表单输入中获取字符串 - AngularJS,JS

iphone - iphone中的休息网络服务

java - 没有足够的内存用于 Spring Boot(从 1Gb heroku dyno 开始)

ruby - 我可以修改 Ruby on Rails 应用程序的 DNS 设置吗?

node.js - 在远程 URL 上重用 Supertest 测试

node.js - 在 Visual Studio Code 中调试 Outlook 的 Web 加载项

node.js - JAVA编写的服务如何与C编写的zeromq代理通信

image - 在 Mongodb 中存储图像并使用 Nodejs 为它们提供服务

python - Flask 和 gunicorn,多个模块 : circular imports - not all routes accessible