NodeJS集群Cluster模式,负载均衡策略设置

NodeJS集群Cluster模式,负载均衡策略设置

参考地址:
https://nodejs.org/api/cluster.html#cluster_cluster

1. RoundRobin

简称:RR
设置的时候使用: cluster.SCHED_RR
代码实现:

cluster.schedulingPolicy = cluster.SCHED_RR;
2. Shared Socket

简称: SS
设置的时候使用: cluster.SCHED_NONE

cluster.schedulingPolicy = cluster.SCHED_NONE;
3. Cluster代码
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
    console.log('[master] ' + "start master...");
    for (var i = 0; i < numCPUs; i++) {
         cluster.fork();
    }
    cluster.on('listening', function (worker, address) {
        console.log('[master] ' + 'listening: worker' + worker.id + ',pid:' + worker.process.pid + ', Address:' + address.address + ":" + address.port);
    });
} else if (cluster.isWorker) {
    console.log('[worker] ' + "start worker ..." + cluster.worker.id);
    http.createServer(function (req, res) {
        console.log('worker'+cluster.worker.id);
        res.end('worker'+cluster.worker.id+',PID:'+process.pid);
    }).listen(3000);
}
Cluster API

cluster.setttings:配置集群参数对象
cluster.isMaster:判断是不是master节点
cluster.isWorker:判断是不是worker节点
Event: ‘fork’: 监听创建worker进程事件
Event: ‘online’: 监听worker创建成功事件
Event: ‘listening’: 监听worker向master状态事件
Event: ‘disconnect’: 监听worker断线事件
Event: ‘exit’: 监听worker退出事件
Event: ‘setup’: 监听setupMaster事件
cluster.setupMaster([settings]): 设置集群参数
cluster.fork([env]): 创建worker进程
cluster.disconnect([callback]): 关闭worket进程
cluster.worker: 获得当前的worker对象
cluster.workers: 获得集群中所有存活的worker对象
worker对象
worker的各种属性和函数:可以通过cluster.workers, cluster.worket获得。

worker.id: 进程ID号
worker.process: ChildProcess对象
worker.suicide: 在disconnect()后,判断worker是否自杀
worker.send(message, [sendHandle]): master给worker发送消息。注:worker给发master发送消息要用process.send(message)
worker.kill([signal=‘SIGTERM’]): 杀死指定的worker,别名destory()
worker.disconnect(): 断开worker连接,让worker自杀
Event: ‘message’: 监听master和worker的message事件
Event: ‘online’: 监听指定的worker创建成功事件
Event: ‘listening’: 监听master向worker状态事件
Event: ‘disconnect’: 监听worker断线事件
Event: ‘exit’: 监听worker退出事件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值