ZMQ通信模式

本文简要介绍ZMQ常用的通信模式

请求响应模式

  • 常规搭配:ZMQ_REQ + ZMQ_REP
  • 带输入负载(Round Robin)均衡搭配:ZMQ_REQ + ZMQ_ROUTER
  • 消息分发搭配:ZMQ_ROUTER + ZMQ_DEALER
  • 带输出负载(load-balance)均衡搭配:ZMQ_DEALER + ZMQ_REP

ZMQ_REQ模式在发送消息时,ZMQ底层会在消息内容头部插入一个空帧,在接收消息时,会去掉空帧,将内容返回给应用层。

ZMQ_REP模式在接收消息时,会将消息空帧之前的信封帧保存起来,将空帧之后的内容传给上层应用。上层应用在响应消息时,底层会在响应消息前加上空帧以及对应请求的信封帧。

ZMQ_ROUTER模式在接收消息时,ZMQ底层会在消息头部添加上一个信封帧,用于标记消息来源。该信封帧可由发送端指定(调用zmq_setsockopt(ZMQ_IDENTITY)),也可由接收端自动生成唯一标识作为信封帧。在发送消息时,将信封帧之后的内容发送到以信封帧为标识的地址。

ZMQ_DEALER模式,对接收到的消息公平排队fair-queue,以Round-Robin方式发送消息。

发布订阅模式

ZMQ_SUB <-- ZMQ_PUB

任务管道模式

ZMQ_PUSH -> [ ZMQ_PULL , ZMQ_PUSH] --> ZMQ_PULL

一对一通信

ZMQ_PAIR <--> ZMQ_PAIR

猜你喜欢

转载自www.cnblogs.com/cherishui/p/10198375.html
zmq