今天正式的去了理了下zmq这个传说是史上最快的消息队列,之前一直认为是个“服务”程序,是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系可以任意组合。上一段nodejs中使用zmq的官方例子
1、producer.js
1 2 3 4 5 6 7 8 9 10 11
| var zmq = require('zmq') , sock = zmq.socket('push');</code></code>
sock.bindSync('tcp://127.0.0.1:3000'); console.log('Producer bound to port 3000');
setInterval(function(){ console.log('sending work'); sock.send('some work'); }, 500); `
|
2、worker.js
1 2 3 4 5 6 7 8 9
| var zmq = require('zmq') , sock = zmq.socket('pull');</code></code>
sock.connect('tcp://127.0.0.1:3000'); console.log('Worker connected to port 3000');
sock.on('message', function(msg){ console.log('work: %s', msg.toString()); });
|
这样worker就开始工作了,接收到producer发送的数据