PM2 NodeJS集群 – 在使用pm2时应该考虑同步

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

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

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

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

因此,一个请求将被路由到一个subprocess,并且相同的请求将不会被另一个进程处理。

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

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

只有当您尝试使用相同的文件名通过两个不同的进程写入文件时,您才会遇到问题。

如果你用不同的文件名从不同的客户端写入不同的文件,那么这不会是一个问题。

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

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

希望你能理解 :-)

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