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队列。其模型如下:





  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值