我有一些Node.js API应用程序。它们都遵循非常相似的模型。
有一个HTTP服务器(express)侦听请求,并对插入请求进行排队。
还有另一个侦听此队列的事件处理程序(它当前在mongodb中,但它可能是redis或其他任何东西),如果找到则处理项目,并在固定的时间间隔后再次尝试。
由于我的服务器都是多核实例,我已经分叉子进程来分配负载。但是目前,这些进程中的每一个都有这些事件处理程序(HTTP和队列处理程序)。
哪种方法更好?将处理程序分成不同的进程,或者在每个进程中都有两个处理程序(我目前的设置)?大约90%的API调用导致向队列中添加项目,稍后需要由队列处理程序处理。
我最初将这两个节点应用程序分离为两个不同的节点应用程序,但我将它们合并为一个,以便在服务器端更容易地进行流程和应用程序管理。