ZMQ通信模式

Posted cherishui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于ZMQ通信模式的主要内容,如果未能解决你的问题,请参考以下文章

zmq的pub/sub模式下inproc,ipc,tcp,epgm的通信性能测试结果以及分析(二)

zmq pub-sub通信之ipc双向主题

C++跨平台:grpc和zmq的方案预研

C++跨平台:grpc和zmq的方案预研

zmq ipc方式进程间通信ipc文件被占用问题

zmq消息传输基本功能的实现传输模式