javascript - 使用 mongodb 将 ZMQ 套接字与 Express app.js 分离

标签 javascript node.js mongodb express zeromq

我正在编写一个 Express 应用程序,该应用程序应该收集通过 ZMQ 从远程计算机发送的一些数据,并使用收到的信息更新 MongoDB 数据库。

更新每 5 分钟发送一次,编码的 JSON 权重小于 1 KB。尽管如此,我注意到当 app.js 解析 JSON 并写入数据库时​​,客户端请求运行速度较慢。

我应该将 ZMQ 套接字代码放在 app.js 中(选项 A),还是应该使用单独的文件(选项 B)?对于选项 B,我可以执行 bash crone 以避免大量 CPU 事件等待(因为每 5 分钟更新一次)。 representation of the options

最佳答案

两部分答案:

您可以而且也许应该将 ZMQ 消息处理与 Express 应用程序分开

这是两个功能上独立的操作,没有理由它们需要位于同一进程中,它们不需要相互访问,因此创建这些单独的进程没有任何害处,并且可能是有好处的。它是否适合您取决于应用程序。

每 5 分钟处理一次 1kb json 结构没有理由会明显影响性能

...除非您的客户端请求量相当高。在最坏的情况下,它应该只会引入几毫秒的延迟,在正常工作负载下,这只会对单个请求产生人类永远不会注意到的程度。如果您的请求并发量很高,那么这种延迟可能会产生轻微的多米诺骨牌效应,从而影响多个请求。否则,您应该考虑您的架构是否存在一些效率低下的问题,可以通过修复这些问题来解决问题。

关于javascript - 使用 mongodb 将 ZMQ 套接字与 Express app.js 分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676067/

相关文章:

javascript - 为什么 Array.prototype 不是 Array 的实例?

javascript - hydrate 一组 json 对象,以便每个具有不同键数的 json 共享最大键

javascript - Meteor.js 最有用的智能包是什么

MongoDB - 模拟连接或子查询

mongodb - 如何将 MongoDB 的数据库转储迁移到 PostgreSQL?

python - Pymongo 聚合管道

javascript - Chart.js - 柱形值显示在柱形中间

javascript - IE9内存泄漏

node.js - react native : Debug and Release builds don't work the same

node.js - 使用 GTFS 数据,我应该如何使用实时 gtfs 扩展它?