Node.js集群共享内存

Node.js集群共享内存

官方的方法

”单个 Node.js 实例运行在单个线程中。 为了充分利用多核系统,有时需要启用一组 Node.js 进程去处理负载任务。cluster 模块可以创建共享服务器端口的子进程。",这段文字来自官方文档的译文

通俗的理解,单个Node.js实例,就是一个进程,这个进程只有一个线程。当然,一个进程至少有一个线程。Node.js的这个线程执行用户代码,IO访问都是异步的。

cluster模块,可以开启多进程,以下是最简单的示例,进程间通过send和on传递消息,这个消息是Object类型数据。如此把数据传来送去,也可以达到共享内存的效果。

if (cluster.isMaster) {
  const worker = cluster.fork();
  worker.send('你好');

} else if (cluster.isWorker) {
  process.on('message', (msg) => {
    process.send(msg);
  });
}

插件:node-addon-sharememory

node-addon-sharememory利用 c++ boost 的跨进程共享内存技术,为 Node.js 提供跨进程的、线程安全的共享内存的能力。

这样,进程间消息通知可以继续采用send和on的方式,而跨进程数据可以放置于共享内存中,减少跨进程传递的数据量。

安装使用和源码,见如下链接:

npmjs - node-addon-sharememory

github - node-addon-sharememory

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值