찾다

 >  Q&A  >  본문

node.js - nodejs cluster中server是由谁创建的

简要代码如下:
if(cluster.isMaster){

   cluster.fork();
   cluster.fork();

}else{

http.createServer(function(){
    ...
}).bind(8080);

}
想问一下,为什么server的创建要写在else里面?那意思不就是 在子进程中创建server,运行了两次,就是创建了2个server?而且都是绑定的同样的端口号?求指点。

PHP中文网PHP中文网2786일 전366

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 16:03:28

    내가 이해하는 바는 다음과 같습니다.
    파일이 실행되기 시작하면
    cluster.isMaster가 true입니다
    그런 다음 실제 브랜치를 입력하고 포크합니다
    포크할 때마다 새 스레드가 생성됩니다. . 이 스레드는 파일을 처음부터 실행합니다.
    이때 Cluster.isMaster가 false입니다
    false 브랜치를 입력하세요
    실행하여 서버를 생성합니다.
    동일한 포트를 수신하는 이유는
    실제로는 메인 스레드만 이 포트를 수신합니다.
    클러스터 메인 스레드는 배포자를 구현합니다.
    이 포트의 다른 스레드에 요청을 배포합니다

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 16:03:28

    마스터 프로세스에서 포트를 생성하고 수신합니다. 요청이 서버 마스터 프로세스에 도달하면 이를 수락하고 작업자 프로세스에 배포합니다.

    회신하다
    0
  • 취소회신하다