1. 先结合RabbitMQ Tutorials,弄清0MQ socket的各种类型。
1.1. 0MQ PAIR 对应 RabbitMQ Tutorials的 "Hello world" 例子
1.2. 0MQ PUSH - PULL 对应 RabbitMQ Tutorials 的 Work queues 例子
1.3. 0MQ PUB - SUB 对应 RabbitMQ Tutorials 的 “Publish/Subscribe" 以及 ”Topic" 例子
1.4. 0MQ ROUTER - DEALER 对应 RabbitMQ Tutorials 的 "Routing" 例子。
1.5. 0MQ REQ - REP 对应 RabbitMQ Tutorials 的 "RPC" 例子
2. 0MQ 的官方 F&Q
0MQ socket 各种类型如何参与socket模式工作。
这里定义了几种常见的模式,也就是最上面与 RabbitMQ Tutorials对应的例子。
这里定义了 0MQ socket 各种类型的行为。
没有定义的类型间的连接是不可预期的。
各种类型的详细行为责任定义:
- http://rfc.zeromq.org/spec:28/REQREP defines the semantics of REQ, REP, DEALER and ROUTER sockets.
- http://rfc.zeromq.org/spec:29/PUBSUB defines the semantics of PUB, XPUB, SUB and XSUB sockets.
- http://rfc.zeromq.org/spec:30/PIPELINE defines the semantics of PUSH and PULL sockets.
- http://rfc.zeromq.org/spec:31/EXPAIR defines the semantics of exclusive PAIR sockets.
例如下面的对PUB类型的定义。
1. 可以与SUB,XSUB这种类型连接。
2. 必须每一个订阅维护一条单一发送队列。
3. 只发送不接收。
4. 必须要做的,不能做的,能够做的
如果你要使用0MQ进行bridge,proxy等middle box程序的开发,就要根据ZMTP进行开发。