fibbery学习笔记 2011-03-24
诸位在前面的例子中,已经可以发现所有的关系都是成对匹配出现的。
之前已经使用的几种模式:
req/rep(请求答复模式):主要用于远程调用及任务分配等。
pub/sub(订阅模式):主要用于数据分发。
push/pull(管道模式):主要用于多任务并行。
除此之外,还有一种模式,是因为大多数人还么有从"TCP"传统模式思想转变过来,习惯性尝试的独立成对模式(1to1).这个在后面会有介绍。
ZeroMQ内置的有效绑定对:
非正常匹配会出现意料之外的问题(未必报错,但可能数据不通路什么的,官方说法是未来可能会有统一错误提示吧),未来还会有更高层次的模式(当然也可以自己开发)。
由于zeroMQ的发送机制,发送到数据有两种状态(是否Copy),在非Copy下,一旦发送成功,发送端将不再能访问到该数据,Copy状态则可以(主要用于重复发送)。还有就是所发送的信息都是保持在内存,故不能随意发送大数据(以防溢出),推荐的做法是拆分逐个发送。(python中的单条信息限制为4M.)
--补充:
这样的发送需要额外标识ZMQ_SNDMORE,在接收端可以通过ZMQ_RCVMORE来判定。
号外!
官方似乎野心勃勃啊,想将zeroMQ加入到Linuxkernel,若真做到可就了不得了。
(未完待续)