`
weitao1026
  • 浏览: 1047808 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

zmq的介绍

zmq 
阅读更多
http://blog.csdn.net/lfsf802/article/details/38238007


、ZeroMQ的背景介绍

官方: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接字之上的一 层封装。ZMQ让编写高性能网络应用程序极为简单和有趣。”

与其他消息中间件相比,ZMQ并不像是一个传统意义上的消息队列服务器,事实上,它也根本不是一个服务器,它更像是一个底层的网络通讯库,在Socket API之上做了一层封装,将网络通讯、进程通讯和线程通讯抽象为统一的API接口。

二、ZMQ是什么

阅读了ZMQ的Guide文档后,我的理解是,这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而ZMQ屏蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。

三、三种模型

a)    应答模式:




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


b)    订阅发布模式




PUB-SUB套接字组合是异步的。客户端在一个循环体中使用recv ()接收消息,如果向SUB套接字发送消息则会报错;类似地,服务端可以不断地使用send ()发送消息,但不能再PUB套接字上使用recv ()。

关于PUB-SUB套接字,还有一点需要注意:你无法得知SUB是何时开始接收消息的。就算你先打开了SUB套接字,后打开PUB发送消息,这时SUB还是会丢失一些消息的,因为建立连接是需要一些时间的。很少,但并不是零。解决此问题需要在PUB端加入sleep。




c)     基于分布式处理(管道模式)




这篇博客对ZMQ有一个初步的介绍,下篇博客介绍如何通过JAVA来调用ZMQ实现消息处理。
分享到:
评论

相关推荐

    ZMQ/ZeroMQ使用手册

    介绍了ZeroMQ的集中模式包括高级请求-应答模式; 手册目录:ZeroMQ基础、ZeroMQ进阶、高级请求-应答模式、可靠的请求-应答模式、高级发布-订阅模式。 ZMQ(ØMQ、ZeroMQ, 0MQ)看起来像是一套嵌入式的网络链接库,但...

    ZMQ简介,转

    ZMQ被称为史上最快消息队列,它处于会话层之上,应用层之下,使用后台异步线程完成消息的接受和发送,完美的封装了Socket API,大大简化了编程人员的复杂度,被称为史上最...本文仅以JAVA版本的ZMQ API为例,介绍ZMQ。

    ZMQ中文Guid

    - C API介绍,包括创建套接字、设置选项、连接/绑定地址等基本操作。 - 高级API特性,如消息的序列化与反序列化、套接字选项的详细说明。 **4. ZMQ的高级特性** - **HWM(High Water Mark,高水位标记)**:用于...

    golang在windows平台使用zmq所需lib和dll

    放在gopath目录下,通过go get下载的资源包中,我本地目录C:\Users\wyy\go\pkg\mod\github.com\pebbe\zmq4@v1.2.7

    win7 64位下配置zmq,附件为生成好的动态库以及jar包

    本文将详细介绍如何在Win7 64位系统中配置ZMQ,利用提供的动态库和Java绑定。 首先,我们有以下几个关键文件: 1. `libzmq-v120-mt-4_0_4.dll`:这是ZeroMQ的动态链接库文件,用于C/C++编程,v120对应Visual Studio...

    ZMQTest_zmq实例程序_源码

    本文将详细介绍`ZMQTest_zmq实例程序_源码`,这是一个基于ZeroMQ(简称zmq)的通信程序示例,适用于Visual Studio 2017开发环境。ZeroMQ是一个高性能的消息队列库,它提供了多种消息传递模式,包括发布/订阅、请求/...

    mql-zmq:适用于MQL语言的ZMQ绑定(32位MT4和64位MT5)

    mql-zmq 适用于MQL语言的ZMQ绑定(32位MT4和64位MT5)介绍这是对MetaTrader4 / 5提供的MQL4 / 5语言的库的完整绑定。 具有编程能力的交易者一直希望像ZeroMQ这样的消息传递解决方案,简单而强大,远胜于官方文章建议...

    Python库 | simple_zmq-0.1.2-py2-none-any.whl

    **ZeroMQ介绍** ZeroMQ,也称为ØMQ、0MQ或ZMQ,是一个高性能的消息传递库,它提供了进程间通信(IPC)和网络间通信(IPC)的功能。ZeroMQ的工作原理类似于消息队列,但其设计目标是实现更灵活、更轻量级的模式,如...

    zeromq简易demo搭建(java版本)

    zeromq简易demo搭建(java版本)是针对Java开发者介绍如何使用ZeroMQ这一高效的消息队列库进行简单应用开发的教程。ZeroMQ,也被称为ØMQ、0MQ或 zmq,是一个轻量级的消息中间件,它提供了一个高级消息队列模型,...

    ZeroMQ介绍及使用

    在Java中,ZeroMQ通过创建`ZMQ.Context`和`ZMQ.Socket`对象来实现通信。服务端(Server)创建一个`ZMQ.REP`类型的socket,绑定到特定端口,等待客户端(Client)的请求。客户端创建一个`ZMQ.REQ`类型的socket,连接...

    node-mt4-zmq-bridge:具有ZeroMQ的Node.js和MetaTrader 4通讯桥

    在使用此模块之前,请先对其进行全面介绍。安装npm install --save mt4-zmq-bridge用法const mt4zmqBridge = require ( 'mt4-zmq-bridge' ) ; mt4zmqBridge对象包含多个枚举属性和connect功能。 有关枚举类型,请...

    zmq 白皮书

    ØMQ (also seen as ZeroMQ, 0MQ, zmq) looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry atomic messages across various transports like ...

    zeromq的Android简单实现

    本文将详细介绍如何在Android中简单实现ZeroMQ的客户端接收和服务器端发送,以及如何自定义客户端向服务器端发送消息。 首先,要使用ZeroMQ在Android上工作,我们需要获取适用于Android的ZeroMQ库。这通常涉及到将...

    ZeroMQ官方文档中文版.pdf

    本知识点将详细介绍ZeroMQ的基本概念、架构、以及如何在实际应用中使用。 **基础知识点** ZeroMQ(ZMQ)简介:作为消息队列的库,ZMQ提供了一种轻量级、易于使用、高性能的通信方法。它支持多种语言,并且可以运行...

    zeroMq中文帮助文档

    在ZeroMQ基础部分,首先介绍了ZMQ的简介、需要具备的知识、获取示例以及提问回答环节。文档强调了ZMQ的几个关键特性,包括但不限于其作为消息组件的强大能力、信箱系统的路由能力,以及它的高速性能。ZMQ能够简化...

    nanomsgardvark:nanomsg 的 R 绑定

    介绍 日期: 2014 年 12 月 13 日 作者: 杰森·E·阿滕博士 接触: 网站: 执照: nanomsgardvark 的 GPL-3。 麻省理工学院的 nanomsg。 目的 nanomsgardvark 是 nanomsg ( ) 的 R 绑定。 nanomsgardvark ...

    zeromq 云时代极速消息通信库

    由于文件中并没有提供具体的ZeroMQ教程或操作细节,我们将以文件标题和描述中提及的内容为基础,结合ZeroMQ的官方文档和应用实践,来全面介绍ZeroMQ在云时代消息通信库中的作用、特点和应用场景。 ### ZeroMQ 简介 ...

    Z-MQ-01烟雾浓度传感器,mq2烟雾传感器报警浓度,C/C++

    【Z-MQ-01烟雾浓度传感器】是一种常见的空气质量监测设备,主要用于检测环境中烟雾的浓度。在工业安全、智能家居、环境监测等领域有广泛应用。该传感器基于MQ系列气体传感器,MQ-2是其中一种型号,它能对烟雾、甲烷...

    ZeroMQ jzmq Win32编译发布文件

    **零MQ (ZeroMQ) 和 jZMQ...以上就是关于"ZeroMQ jzmq Win32编译发布文件"的相关知识,包括ZeroMQ和jZMQ的基本介绍、文件组成、使用环境以及基本的使用步骤和示例代码。希望对你理解ZeroMQ及其在Java中的应用有所帮助。

Global site tag (gtag.js) - Google Analytics