Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

node 的跨进程句柄共享

  虽然用 IPC 传输数据是个坑,但是 IPC 除了一般数据传输外还支持一些系统对象的句柄传输。即便 cluster 模式工作的 node 应用本身就可以跨 Worker 共享句柄,有时候自己去传输这些句柄可以避开一些系统层面的坑。因为 cluster 的工作方式在不同操作系统下老是会表现出奇怪的行为。
  下面的例子是在主进程上处理连接,并把句柄丢到子进程中,让子进程来处理具体的数据。
const cluster = require('cluster'); const net = require('net'); if (cluster.isMaster) { let worker = cluster.fork(); net.createServer(socket => { worker.send(null, socket); }).listen(3000); let socket = net.connect(3000); socket.write('hehe'); } else { process.on('message', (message, handle) => { handle.on('data', data => { console.log(data + ''); // hehe }); }); }   这样就不再需要依赖 cluster 那莫名其妙的端口共享机制了。而且还可以根据自己的业务需求,实现更加优秀的智能调度,选择更加空闲的进程来处理连接,充分利用系统资源。
  
网名:
23.20.64.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^