我正在编写一个 Express 应用程序,该应用程序应该收集通过 ZMQ 从远程计算机发送的一些数据,并使用收到的信息更新 MongoDB 数据库。
更新每 5 分钟发送一次,编码的 JSON 权重小于 1 KB。尽管如此,我注意到当 app.js 解析 JSON 并写入数据库时,客户端请求运行速度较慢。
我应该将 ZMQ 套接字代码放在 app.js 中(选项 A),还是应该使用单独的文件(选项 B)?对于选项 B,我可以执行 bash crone 以避免大量 CPU 事件等待(因为每 5 分钟更新一次)。
最佳答案
两部分答案:
您可以而且也许应该将 ZMQ 消息处理与 Express 应用程序分开
这是两个功能上独立的操作,没有理由它们需要位于同一进程中,它们不需要相互访问,因此创建这些单独的进程没有任何害处,并且可能是有好处的。它是否适合您取决于应用程序。
每 5 分钟处理一次 1kb json 结构没有理由会明显影响性能
...除非您的客户端请求量相当高。在最坏的情况下,它应该只会引入几毫秒的延迟,在正常工作负载下,这只会对单个请求产生人类永远不会注意到的程度。如果您的请求并发量很高,那么这种延迟可能会产生轻微的多米诺骨牌效应,从而影响多个请求。否则,您应该考虑您的架构是否存在一些效率低下的问题,可以通过修复这些问题来解决问题。
关于javascript - 使用 mongodb 将 ZMQ 套接字与 Express app.js 分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676067/