当前位置: 首页 > ds >正文

Zeromq模式详解

ZeroMQ是一种基于消息队列的多线程网络库,提供跨越多种传输协议(TCP:传输控制协议,当传输出现错误时能自动予以纠正;UDP:用户数据包协议,当传输出现错误时会将错误信息丢弃;)的套接字。ZeroMQ是一个可伸缩层,可并行运行,分散在分布式系统间。

1.Request-Reply模式

问答一一对应

问答模式,由请求端发起请求,然后等待回应端应答。一个请求必须对应一个回应,从请求端的角度来看是发-收配对,从回应端的角度是收-发对。请求端可以是1~N个。该模型主要用于远程调用及任务分配等。

使用REQ-REP套接字发送和接受消息是需要遵循一定规律的。客户端首先使用zmq_send()发送消息,再用zmq_recv()接收,如此循环。如果打乱了这个顺序(如连续发送两次)则会报错。类似地,服务端必须先进行接收,后进行发送。
也就是说Request-Reply模式是严格同步的,Request端必须先发送后接受,reply端必须先接受后发送。

在这里插入图片描述

req问

package zeromqDemo;import org.zeromq.ZMQ;//模拟问答模式中的问
public class ZmqReq {public static void main(String[] args) {//创建zeromq客户端ZMQ.Context zmq = ZMQ.context(1);//创建一个问的客户端ZMQ.Socket req = zmq.socket(ZMQ.REQ);//连接ip和端口req.connect("tcp://localhost:5555");//定义标志位int i = 0;//接收数据while (!Thread.currentThread().isInterrupted()){//发送请求String str = "hello world";//发送req.send(str+i);System.out.println(str+i);//接收数据byte[] recv = req.recv();//打印System.out.println(new String(recv));i++;}//关闭资源req.close();zmq.close();}
}

rep答

package zeromqDemo;import org.zeromq.ZMQ;//模拟问答模式中的答
public class ZmqRep {public static void main(String[] args) throws InterruptedException {//创建zmq实例ZMQ.Context zmq = ZMQ.context(1);//创建答的实例ZMQ.Socket rep = zmq.socket(ZMQ.REP);//绑定ip和端口rep.
http://www.xdnf.cn/news/11489.html

相关文章:

  • UAC 实现原理及绕过方法
  • 【infiniband】SDR、DDR、QDR、FDR、EDR、HDR、NDR
  • 一文读懂ISM频段
  • asio中的锁到底严不严重
  • 拟合是什么意思
  • 转载--Linux下Modules的概念及使用详解
  • 什么是域名 --每天一个小知识
  • DFA 的化简
  • 一. NSIS介绍
  • 初探BFF架构
  • AutoGPT怎么用?一文配置自己的AutoGPT!
  • JavaScript中object对象
  • 私藏的18个黑科技网站,想找什么软件就找什么软件!!!
  • Java里什么是POJO
  • Css---vertical-align 属性的用法与应用
  • 【整理】TAC码是什么?TAC码和IMEI有什么关系?
  • 数据结构-二维数组
  • HTTP代理和SOCKS代理
  • Fortran语言的入门与心得
  • BST(二叉搜索树)
  • finalize方法_finalize()方法详解
  • HLS RTSP RTMP的区别
  • java injection_injection(注入)
  • MySql下载和安装
  • Linux基础知识汇总,收藏
  • 推荐几个精致的web UI框架及常用前端UI框架(1),web开发进阶
  • 各类编程语言的历史以及现状发展情况
  • jquery实现移动端slotmachine抽奖游戏,中奖后并弹出地址填写框
  • 常见CMS系统总结
  • 【图割】最大流最小切割的最直白解读