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来作。
这篇教程,还有很多地方没看懂,有些看懂了,看是还没用到。
浙公网安备 33010602011771号