本文简要介绍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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。