码迷,mamicode.com
首页 > 其他好文 > 详细

ZeroMQ笔记

时间:2015-03-18 15:59:01      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:zeromq

Request-Reply模式

  • 对于client来说必须严格按照先调用zmq_send() 函数,然后调用zmq_recv()函数的顺序来执行
  • 对于server来说,执行时序相反
  • 如果不按照这个时序来,可能会发生错误,或者信息丢失
  • 可以有多个client同时连接到server

技术分享

Publish-Subscribe模式

  • SUB socket必须调用zmq_setsockopt()函数设置描述符。
  • client可以调用 zmq_recv(),从SUB socket上读取数据,但是不能往SUB socket上写数据,否则会发生错误
  • 此模式是异步通信模式,即使没有client连接上server,server也在源源不断的发送数据。所以,即使client各种设置正确,也有可能接收不到数据,因为当client连接上的时候可能它所关心的数据已经发送完毕了。
  • 一个subscriber 可以连接到多个publisher
  • 如果publisher 没有subscribers连接他,发送的消息会被简单的丢弃
  • 如果使用TCP连接,并且subscribers处理很慢,那么消息会在publisher这边放入队列中

技术分享

Divide and Conquer

此模式解释如下:

  • 一个ventilator负责生产可以并行执行的任务
  • 一系列的workers负责处理任务
  • sink负责从工作进程收集处理结果
  • 在Ventilator和worker之间必须要有同步,这点是很难处理。当所有的Worker就绪之后,再生产任务,这样Worker就可以平均处理。如果不做同步,第一个连接上Ventilator的Worker将会做大量的工作

技术分享


Sink从Worker进程收集处理结果,结果存放在fair-queuing队列。其模型如下:

技术分享





ZeroMQ笔记

标签:zeromq

原文地址:http://blog.csdn.net/ifloveelse/article/details/44409635

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!