本介绍基于以下依赖
<dependency>
<groupId>org.zeromq</groupId>
<artifactId>jeromq</artifactId>
<version>0.5.1</version>
</dependency>
参考文档
术语
high water mark: 高水位标志,接收或发送消息的缓冲区大小可通过Socket::setRcvHWM和Socket::setSndHWM设置。(各种socket option的含义参考前面给的链接中的文档)
mute state: 静音状态 ,一般是指某个端点无法发送消息的状态,可能是因为没有与之连接的接收方,也可能是因为接收方由于某些原因无法继续接收消息。
消息模式
请求-回复模式
请求回复模式适用于客户端向服务端发送请求,然后每一个请求都会收到服务端的回复的场景。
代码样例
https://gitee.com/toosimple-naive/zmq-learn/tree/dev/zmq/src/main/java/com/learn/zmq/repreq
包含的stocket type
ZMQ.REQ, ZMQ.REP, ZMQ.DEALER, ZMQ.ROUTER
ZMQ_REQ
ZMQ_REQ 类型的socket 用于向服务端发送请求并接收回复消息。
只能先发消息后收消息,发出的请求会以round-robin方式分配给不同的服务端节点。
没有服务可用时,发送操作会阻塞,直到至少一个服务可用。
ZMQ_REQ 类型的socket不丢弃消息。
ZMQ_REQ 特征 | |
---|---|
Compatible peer sockets | ZMQ_REP, ZMQ_ROUTER |
Direction | Bidirectional |
Send/receive pattern | Send, Receive, Send, Receive, … |
Outgoing routing strategy | Round-robin |
Incoming routing strategy | Last peer |
Action in mute state | Block |