zeroMQ初体验-5.高级教程初涉
诸位在前面的例子中,已经可以发现所有的关系都是成对匹配出现的。
之前已经使用的几种模式:
req/rep(请求答复模式):主要用于远程调用及任务分配等。
pub/sub(订阅模式):主要用于数据分发。
push/pull(管道模式):主要用于多任务并行。
除此之外,还有一种模式,是因为大多数人还么有从"TCP"传统模式思想转变过来,习惯性尝试的独立成对模式(1to1).这个在后面会有介绍。
ZeroMQ内置的有效绑定对:
- PUBandSUB
- REQandREP
- REQandXREP
- XREQandREP
- XREQandXREP
- XREQandXREQ
- XREPandXREP
- PUSHandPULL
- PAIRandPAIR
非正常匹配会出现意料之外的问题(未必报错,但可能数据不通路什么的,官方说法是未来可能会有统一错误提示吧),未来还会有更高层次的模式(当然也可以自己开发)。
由于zeroMQ的发送机制,发送到数据有两种状态(是否Copy),在非Copy下,一旦发送成功,发送端将不再能访问到该数据,Copy状态则可以(主要用于重复发送)。还有就是所发送的信息都是保持在内存,故不能随意发送大数据(以防溢出),推荐的做法是拆分逐个发送。(python中的单条信息限制为4M.)
--补充:
这样的发送需要额外标识ZMQ_SNDMORE,在接收端可以通过ZMQ_RCVMORE来判定。
号外!
官方似乎野心勃勃啊,想将zeroMQ加入到Linuxkernel,若真做到可就了不得了。
(未完待续)
相关推荐
fibbery学习笔记 2020-06-27
jiaomrswang 2020-06-26
laijunfeng 2020-04-07
liuxingen 2019-12-27
laijunfeng 2017-07-21
徐二七 2019-09-18
helongzhong 2019-01-15
fibbery学习笔记 2016-09-21
fibbery学习笔记 2014-11-18
jiaomrswang 2019-01-15
laijunfeng 2013-04-16
聚沙成塔积水成渊 2015-02-06
shuaiOKshuai 2012-12-06
woaizard00 2012-04-26
asia 2012-04-26
laijunfeng 2011-09-25
云端轻躺 2011-08-10
石头君 2011-03-25