简要代码如下:if(cluster.isMaster){
cluster.fork(); cluster.fork();
}else{
http.createServer(function(){ ... }).bind(8080);
}想问一下,为什么server的创建要写在else里面?那意思不就是 在子进程中创建server,运行了两次,就是创建了2个server?而且都是绑定的同样的端口号?求指点。
认证高级PHP讲师
これは私が理解していることです: ファイルの実行が開始されると、cluster.isMaster は true次に true ブランチに入り、フォークしますフォークするたびに、新しいスレッドが作成されますこのスレッドは最初からファイルを実行しますこの時点ではcluster.isMasterはfalseですfalseブランチに入りますサーバーの作成を実行します同じことをリッスンしている理由はport実際には、メイン スレッドだけがこのポートをリッスンしていますクラスタ メイン スレッド このポート上の他のスレッドにリクエストを分散するためにディスパッチャが実装されます
マスタープロセスによってポートが作成され、リッスンされます。リクエストがサーバーマスタープロセスに到達すると、リクエストが受け入れられ、ワーカープロセスに配布されます。
これは私が理解していることです:
ファイルの実行が開始されると、
cluster.isMaster は true
次に true ブランチに入り、フォークします
フォークするたびに、新しいスレッドが作成されますこのスレッドは最初からファイルを実行します
この時点ではcluster.isMasterはfalseです
falseブランチに入ります
サーバーの作成を実行します
同じことをリッスンしている理由はport
実際には、メイン スレッドだけがこのポートをリッスンしています
クラスタ メイン スレッド このポート上の他のスレッドにリクエストを分散するためにディスパッチャ
が実装されます
マスタープロセスによってポートが作成され、リッスンされます。リクエストがサーバーマスタープロセスに到達すると、リクエストが受け入れられ、ワーカープロセスに配布されます。