PM2 NodeJS集群 - 我应该考虑在使用pm2

时间:2016-10-15 02:45:46

标签: node.js pm2

我的快递服务器做了一项非常简单的工作 - 将请求网址保存到文件中(通过fs.appendFile)。

我认为它在没有使用pm2时工作正常,因为它只有一个进程,所以没有其他进程/线程同时保存同一个文件。

但是当使用pm2时,我不知道是否会发生两个进程同时写入同一个文件?感谢。

2 个答案:

答案 0 :(得分:2)

  

pm2模式下使用cluster时,会发生请求路由   使用Round Robin算法。这意味着群集master接受了   所有传入的连接并将它们路由到子进程   (对一个子进程的一个请求)。

因此,一个请求将被路由到一个子进程,同一个请求将不会被另一个进程处理。

对于上述情况,当您收到来自两个不同客户的两个不同请求时,它们将由两个不同的进程处理。

只要你有一个逻辑来创建一个唯一的文件名,即使请求同时处理,你也不会遇到任何问题。

只有当您尝试使用相同文件名的两个不同进程编写文件时,才会出现问题。

如果您使用不同的文件名从不同的客户端编写不同的文件,则不会出现问题。

注意:由于来自一个客户端的请求将由一个进程处理,因此两个或多个进程将不处理相同的请求,并且不会两次写入相同的文件。

如果您使用相同的文件名从不同的客户端编写不同的文件,则会出现此问题。

希望你明白: - )

答案 1 :(得分:0)

是的,当多个进程同时写入/附加同一文件时,它可能会混乱。那么最好的方法是只使用一个进程来写文件,或者你必须同步它们