ZeroMQ:请求-响应模式:ZMQ_REP、ZMQ_REQ--模式


一、?MQ模式总览
?MQ支持多种模式
本文介绍?MQ的“请求-响应”模式

二、发布-订阅模式

请求-应答模式通常是最常见的交互模式,假如连接之后,服务器终止,那么客户端也终止,从崩溃的过程中恢复没那么容易
因此,做一个可靠的请求-应答模式很复杂,在很后面我们会有一部分系列文章介绍“可靠的请求-应答模式”
?MQ的套接字类型有4种:
ZMQ_REP
ZMQ_REQ
ZMQ_DEALER
ZMQ_ROUTER

三、“REQ-REP”套接字类型
请求-响应模式用于将请求从ZMQ_REQ客户端发送到一个或多个ZMQ_REP服务,并接收对每个发送的请求的后续答复
REQ-REP套接字对是步调一致的。它们两者的次序必须有规则,不能同时发送或接收,否则无效果
ZMQ_REQ
客户端使用ZMQ_REQ类型的套接字向服务发送请求并从服务接收答复
此套接字类型仅允许zmq_send(request)和后续zmq_recv(reply)调用交替序列。发送的每个请求都在所有服务中轮流轮询,并且收到的每个答复都与最后发出的请求匹配
如果没有可用的服务,则套接字上的任何发送操作都应阻塞,直到至少有一项服务可用为止。REQ套接字不会丢弃消息

ZMQ_REQ特性摘要
兼容的对等套接字
ZMQ_REP、ZMQ_ROUTER
方向
双向
发送/接收模式
发送、接收、发送、接收......
入网路由策略
最后一位(Last peer)

外发路由策略

轮询
静音状态下的操作
阻塞


ZMQ_REP
服务使用ZMQ_REP类型的套接字来接收来自客户端的请求并向客户端发送回复
此套接字类型仅允许zmq_recv(request)和后续zmq_send(reply)调用的交替序列。接收到的每个请求都从所有客户端中公平排队,并且发送的每个回复都路由到发出最后一个请求的客户端
如果原始请求者不再存在,则答复将被静默丢弃


演示案例
本演示案例如下:
服务端创建REP套接字,阻塞等待客户端消息的到达,当客户端有消息达到时给客户端回送“World”字符串
客户端创建REP套接字,向服务端发送字符串“Hello”,然后等待服务端回送消息

猜你喜欢

转载自www.cnblogs.com/youdud/p/13180029.html
zmq
今日推荐