关注小众语言、AI技术,记录、分享技术点滴!

0%

对zeroMQ的认识

今天正式的去了理了下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发送的数据