ZeroMQ入门

news2025/1/11 14:31:00

官网: ZeroMQ

简介

ZeroMQ是一个库,不是消息队列也不是消息中间件,介于应用层和传输层之间(按照TCP/IP划分)。

传统的Socket通信模式需要创建连接,销毁连接,选择协议等一些列操作。而ZeroMQ是在Socket封装一层的并行开发框架,它既不是TCP也不是Socket,它提供线程间、进程间以及网络间的消息信道。

格式分别为inproc://ipc://tcp://pgm://。ZeroMQ会自动根据指定的字符串解析出协议、地址、端口号等信息。

模式

REQ/REP(请求应答模式)

REQ/REP 是最基本的模式。该模型主要用于远程调用及任务分配等。

由请求端发起请求,然后等待回应端应答。一个请求必须对应一个回应,从请求端的角度来看是发-收配对,从回应端的角度是收-发对。跟一对一结对模型的区别在于请求端可以是1~N个。

Router/Dealer(请求应答代理)

用于扩展REQ/REP套接字的高级模式。 

 PUB/SUB(发布订阅)

该模型主要用于数据分发。

发布端单向分发数据,且不关心是否把全部信息发送给订阅端。如果发布端开始发布信息时,订阅端尚未连接上来,则这些信息会被直接丢弃。订阅端未连接导致信息丢失的问题,可以通过与请求回应模型组合来解决。订阅端只负责接收,而不能反馈,且在订阅端消费速度慢于发布端的情况下,会在订阅端堆积数据。

 PUSH/PULL(推拉)

该模型主要用于多任务并行,提高任务处理效率。

Server端作为Push端,而Client端作为Pull端,如果有多个Client端同时连接到Server端,则Server端会在内部做一个负载均衡,采用平均分配的算法,将所有消息均衡发布到Client端上。与发布订阅模型相比,推拉模型在没有消费者的情况下,发布的消息不会被消耗掉;在消费者能力不够的情况下,能够提供多消费者并行消费解决方案。

 

PAIR(独占对模式)

参考:

重头戏!ZeroMQ的独家对模式详解:ZMQ_PAIR_董哥的黑板报的博客-CSDN博客

ZeroMQ学习笔记(2)——套接字和模式 - 灰信网(软件开发博客聚合)
 

独家对模式(Exclusive pair)用于将一个对等点精确地连接到另一个对等点。此模式用于跨inproc传输的线程间通信。他支持的套接字类型只有1种:ZMQ_PAIR。

ZMQ_PAIR类型的套接字只能一次连接到单个对等方。当ZMQ_PAIR套接字已达到连接对等方的高水位线而进入静音状态时,或者如果没有连接任何对等方,则套接字上的任何zmq_send()操作都应阻塞,直到对等方可用于发送。

参考:

ZeroMQ学习笔记(2)——套接字和模式 - 灰信网(软件开发博客聚合)

重头戏!带你全览ZeroMQ的七大消息模式_zeromq消息类型_董哥的黑板报的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/938883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

①matlab的命令掌握

目录 输入命令 命名变量 保存和加载变量 使用内置的函数和常量 输入命令 1.您可以通过在命令行窗口中 MATLAB 提示符 (>>) 后输入命令 任务 使用命令 3*5 将数值 3 和 5 相乘。 答案 3*5 2.除非另有指定,否则 MATLAB 会将计算结果存储在一个名为 ans…

No119.精选前端面试题,享受每天的挑战和学习

文章目录 实现栈,有入栈出栈的方法,以及length属性如何封装组件单页应用怎么跨页面传参权限怎么设计的map和forEach对于对象类型会不会改变 实现栈,有入栈出栈的方法,以及length属性 可以通过 JavaScript 的数组来实现一个栈结构…

倒数 2 周|期待 2023 Google开发者大会

9 月 6-7 日,中国上海 前沿科技,新知同享 趣味体验,灵感齐聚 技术生态,多元共进 关注官网最新信息,敬请期待大会开幕 2023 Google 开发者大会官网 相信你一定记得,在今年 5 月的 Google I/O 大会上&am…

考察交流 | 九江市浔阳区委常委、副区长雷霆钧一行考察中创算力

考察交流 8月25日,九江市浔阳区委常委、副区长雷霆钧来访中创算力开展招商考察,中创董事长许伟威热情接待了调研领导一行。浔阳区数字经济发展中心主任曹超成、九江电信浔阳分局局长黄健、九江新联智创董事长刘诚志、德国石荷州中资企业协会副会长陈虹瑾…

SAP从放弃到入门系列之abapGit安装

文章目录 一、概括二、系统环境三、安装独立版本四、安装开发者版本4.1、在线安装(推荐)4.2、离线安装 前段时间看了汪子熙老师关于abap2UI5的文章,感觉很有意思,来了解一下。abapGit 安装的文章已经有很多了,但是为了在系统里使用…

redis windows 版本安装

1. 下载windows安装包并解压 如果是Linux版本可以直接到官网下载,自3.x起官网和微软网站就没有redis安装包更新了,好在github有开发者在编译发布更新(目前最新有5.0.9版本可下),地址:redis windows 5版本下…

即时通讯开发中的5个难点及解决方案

在当今数字化时代,人们越来越依赖即时通讯应用程序进行实时消息传递、语音通话和视频聊天。然而,即时通讯开发并非易事,开发人员需要克服许多技术和功能上的挑战。以下是即时通讯开发过程中最常见的5个难点,以及专家们提出的解决方…

新闻稿发布策略:选择合适渠道,让品牌故事传遍大江南北

新闻稿是企业宣传和传媒报道的重要工具,它可以传达企业的最新动态、产品推出、重要事件等信息。而如何正确发布新闻稿,选择合适的发布渠道,对于提高新闻稿的曝光度和影响力至关重要。在本文中,我们一秒推小编将探讨新闻稿的发布方…

完美解决Ubuntu网络故障,连接异常,IP地址一直显示127.0.0.1

终端输入ifconfig显示虚拟机IP地址为127.0.0.1&#xff0c;具体输出内容如下&#xff1a; wxyubuntu:~$ ifconfig lo: flags73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen …

Linux必备的5款神仙国产软件,让你工作效率成倍提升

随着近些年来国产化计算机的普及&#xff0c;国内的Linux用户逐渐开始多了起来&#xff0c;虽然Linux操作系统的生态不像Windows那么完善&#xff0c;有众多办公软件可以选择&#xff0c;但也有一定数量的软件资源&#xff0c;其中也包括一些优秀的国产软件。下面我将为大家分享…

【VS Code插件开发】状态栏(五)

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;前端领域优质作者、阿里云专家博主&#xff0c;共同学习共同进步&#xff0c;一起加油呀&#xff01; &#x1f4e2; 资料领取&#xff1a;前端…

uniapp 实现地图距离计算

在uniapp中实现地图距离计算可以借助第三方地图服务API来实现。以下是一种基本的实现方式&#xff1a; 注册地图服务API账号&#xff1a;你可以选择使用高德地图、百度地图等提供地图服务的厂商&#xff0c;注册一个开发者账号并获取API密钥。 安装相关插件或SDK&#xff1a;根…

怎么选择自定义工作流自定义表单?

在快节奏社会中&#xff0c;传统的表单制作已经无法胜任日益繁琐的办公工作了&#xff0c;只有选择更有优势的自定义工作流自定义表单工具&#xff0c;才能提质、降本、增效&#xff0c;为不同领域的客户朋友带来可观的市场效益。选好专业的低代码技术平台&#xff0c;就可以在…

Gitlab设置中文

1. 打开设置 2.选择首选项Preferences 3. 下滑选择本地化选项Localization&#xff0c;设置简体中文&#xff0c;然后保存更改save changes。刷新网页即可。

创建QT项目

目录 使用向导创建 新建项目 设置项目名称和创建项目路径 ​编辑 选择编译套件 修改类的名字和基类 ​编辑完成 ​编辑 手动创建 .pro文件 注释 TEMPLATE TARGET HEADERS FORMS SOURCES RESOURCES 配置信息 简单QT应用程序的示例 使用向导创建 新建项目 设置项…

数据仓库ELT流程是啥?8大好用的ELT工具我找来了,赶紧收藏!

一、数据抽取 数据源是指存储数据的源头&#xff0c;包括结构化数据、半结构化数据、非结构化数据等。 结构化数据&#xff1a;可以采用直连数据库的方式进行抽取&#xff0c;一般采用JDBC&#xff08;Java Database Connectivity&#xff09;。这种方式的优点是数据抽取效率高…

设计模式第十三讲:编写可读代码的艺术

设计模式第十三讲&#xff1a;编写可读代码的艺术 编写可读代码是极为重要的&#xff0c;编程有很大一部分时间是在阅读代码&#xff0c;不仅要阅读自己的代码&#xff0c;而且要阅读别人的代码。因此&#xff0c;可读性良好的代码能够大大提高编程效率。可读性良好的代码往往会…

老网工的爱情故事二:从VPN到SD-WAN,爱情与技术的升华

— 前言 — 为什么爱情不能像设置VLAN一样 把不同的“IP”的人绑在一起&#xff1f; 为什么周围的事物 不能像创建ACL那样随心所欲的控制&#xff1f; 为什么相爱的人远在天涯 不能像做VPN一样拉到近在咫尺&#xff1f; 为什么你我之间没有一个边界路由呢&#xff1f; 我已经给…

02深入探究:OA项目会议发布、左侧菜单和动态选项卡的完美合盘

目录 1.左侧导航 导航一般指页面引导性频道集合&#xff0c;多以菜单的形式呈现&#xff0c;可应用于头部和侧边&#xff0c;是整个网页画龙点晴般的存在。 面包屑结构简单&#xff0c;支持自定义分隔符。 注&#xff1a;千万不要忘了加载 element模块。虽然大部分行为都是…

Redis之集群模式

一、Redis集群 一个节点就是一个运行在集群模式下的Redis服务器&#xff0c;Redis服务器在启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式。 Redis节点不会互相发现&#xff0c;连接各个节点的工作需要使用cluster meet命令来完成 CLUSTER MEE…