我正在编写一个Express应用程序,它应该通过ZMQ收集从远程机器发送的一些数据,并使用收到的信息更新MongoDB数据库。
每5分钟发送一次更新,编码的JSON权重小于1 KB。不过我注意到,当app.js解析JSON并写入数据库时,客户端请求运行速度较慢。
我应该将ZMQ套接字代码放在app.js(OPTION A)中,还是只使用一个单独的文件(OPTION B)?在选项B的情况下,我可以执行bash crone以避免繁重的CPU活动等待(每5分钟更新一次)。
答案 0 :(得分:0)
两部分答案:
您可以,也许应该将您的ZMQ消息处理与Express App分开
这是两个功能上分开的行动,没有理由他们需要在同一个过程中,他们不需要互相访问,所以没有任何伤害,可能是一个有利于制作这些独立的流程。它是否适合您,取决于应用程序。
没有理由每隔5分钟处理1kb json结构会显着影响性能
... 除非 您的客户端请求量非常高。它应该只引入几毫秒的延迟,在最坏的情况下,在正常工作负载下应该只影响单个请求,达到人类永远不会注意到的程度。如果您的请求并发性很高,那么该延迟可能会产生影响多个请求的轻微多米诺骨牌效应。否则,您应该考虑您的架构是否存在一些可以解决问题的低效率。