簡體   English   中英

PM2 NodeJS集群 - 我應該考慮在使用pm2時進行同步

[英]PM2 NodeJS cluster - Should I consider synchronizing when using pm2

我的快速服務器做了一個非常簡單的工作 - 將請求URL保存到文件中(通過fs.appendFile)。

我想它在不使用pm2時工作正常,因為它只有一個進程,所以沒有其他進程/線程同時保存同一個文件。

但是當使用pm2時,我不知道是否會發生兩個進程同時寫入同一個文件? 謝謝。

cluster模式下使用pm2時,將使用Round Robin算法進行請求路由。 這意味着集群master接受所有傳入連接並將它們路由到子進程(對一個子進程的一個請求)。

因此,一個請求將被路由到一個子進程,並且同一請求將不會被另一個進程處理。

對於上述情況,當您收到來自兩個不同客戶端的兩個不同請求時,它們將由兩個不同的進程處理。

只要你有一個邏輯來創建一個唯一的文件名,即使請求同時處理,你也不會遇到任何問題。

只有當您嘗試使用具有相同文件名的兩個不同進程編寫文件時,才會出現問題。

如果您使用不同的文件名從不同的客戶端編寫不同的文件,那么這將不是問題。

注意 :由於來自一個客戶端的請求將由一個進程處理,因此兩個或多個進程將不處理相同的請求,並且不會將同一文件寫入兩次。

如果您使用相同的文件名從不同的客戶端編寫不同的文件,則會出現此問題。

希望你能理解 :-)

是的,當多個進程同時寫入/附加同一文件時,它可能會混亂。 那么最好的方法是只使用一個進程來寫文件,或者你必須同步它們

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM