PM2のクラスターとフォークモードの違い 質問する

PM2のクラスターとフォークモードの違い 質問する

この質問を理解するためにいろいろ調べましたが、明確な説明が得られませんでした。クラスター化されたアプリはスケールアウトできますが、フォークされたアプリはスケールアウトできないという唯一の違いがあるのでしょうか?

PM2の公開サイトでは、クラスタモードでできることが説明されています。これらの特徴しかし、フォーク モードの利点については誰も言及していません (おそらく、それはNODE_APP_INSTANCE変化する可能性があります)。

Cluster は Fork の一部であるように感じます。Fork は一般的に使用されているようです。つまり、PM2 の観点からは、Fork は単に「フォークされたプロセス」を意味し、Cluster は「スケールアウト可能なフォークされたプロセス」を意味すると思います。では、なぜ Fork モードを使用する必要があるのでしょうか?

ベストアンサー1

fork_modeとの主な違いは、 cluster_modepm2にどちらかを使用するよう指示することです。子プロセス.フォークAPIまたは集まるAPI。

これは内部的に何を意味するのでしょうか?

フォークモード

モードを基本的なプロセス生成として採用しますfork。これにより を変更して、pm2 でまたはサーバーexec_interpreterを実行できるようになります。はい、 は子プロセスを開始するために使用される「コマンド」です。デフォルトでは、pm2 は を使用するため、次のような処理が行われます。phppythonexec_interpreternodepm2 start server.js

require('child_process').spawn('node', ['server.js'])

このモードは、多くの可能性を実現するため、非常に便利です。たとえば、事前に確立されたポートで複数のサーバーを起動し、HAProxy または Nginx によって負荷分散することができます。

クラスターモード

は、Node.js クラスタ モジュール (例: 、メソッドなど) にアクセスするため、そのままclusterでのみ動作します。プロセスは複数のインスタンスに自動的にフォークされるため、これはゼロ構成プロセス管理に最適です。たとえば、のインスタンスを 4 つ起動し、クラスタ モジュールに負荷分散を処理させます。nodeexec_interpreterisMasterforkpm2 start -i 4 server.jsserver.js

おすすめ記事