nodejs 负载均衡

教程:http://taobaofed.org/blog/2015/11/03/nodejs-cluster/

纠正:net.createServerHandle();

记录:http://www.jianshu.com/p/54b85f278695

代码:

master

const net = require('net');
const fork = require('child_process').fork;

var handle = net.createServerHandle('0.0.0.0', 3000);

for(var i=0;i<4;i++) {
   fork('./worker').send({}, handle);
}

worker

const net = require('net');
process.on('message', function(m, handle) {
  start(handle);
});

var buf = 'hello nodejs';
var res = ['HTTP/1.1 200 OK','content-length:'+buf.length].join('\r\n')+'\r\n\r\n'+buf;

function start(server) {
    server.listen();
    server.onconnection = function(err,handle) {
        console.log('got a connection on worker, pid = %d', process.pid);
        var socket = new net.Socket({
            handle: handle
        });
        socket.readable = socket.writable = true;
        socket.end(res);
    }
}

解释,fork('/worker)->emit('message')

教程:http://taobaofed.org/blog/2015/11/10/nodejs-cluster-2/

由于多进程模型存在的问题,这里采用了另一种模型。实际中,先采用pm2来作。

这篇教程,还有很多地方没看懂,有些看懂了,看是还没用到。