- 浏览: 1047808 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
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实现消息处理。
、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实现消息处理。
发表评论
-
ActiveMQ安装与使用
2017-12-11 18:07 790一 .安装运行ActiveMQ: ... -
MQ的使用
2017-12-11 18:18 406安装环境:linux redhat activemq版本 ... -
mq常用命令
2017-12-11 18:20 502创建队列管理器 crtmqm qmgrname 删 ... -
Activemq的端口监听介绍及端口优化
2018-01-07 09:06 584在activemq的conf/activemq.x ... -
ActiveMq启动停止
2017-10-25 10:05 1267Linux操作系统 进入bin目录下,64位操作系统可以进 ... -
RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总
2017-07-21 14:21 992MQ框架非常之多,比较流行的有RabbitMq、Active ... -
使用activemq
2017-06-29 14:32 455说说在项目里是怎么使用activemq(简称为amq)进行通 ... -
activeMQ启动失败61616端口被占用问题
2017-03-27 23:19 1706通过netstat -aon | findstr " ... -
Kafka 对比 ActiveMQ
2016-12-13 13:00 1775Kafka 是LinkedIn 开发的一个高性能、分布式的 ... -
ActiveMQ的工作原理
2016-11-14 10:19 718如图所示 首先来看本地通讯的情况,应用程序A和应用程 ... -
Spring整合JMS----基于ActiveMQ的实现
2016-12-27 10:22 4091.1 JMS简介 JMS的全称是Ja ... -
Spring整合JMS的三种监听
2016-12-30 11:47 844在Spring整合JMS的应用中我们在定义消息监听器的时候一共 ... -
Spring整合JMS的MessageConverter
2016-12-30 11:43 456消息转换器MessageConverter Me ... -
Spring整合JMS
2016-12-30 11:44 424Spring提供了一个JmsTransac ... -
ActiveMQ入门
2017-01-01 23:34 5011.下载ActiveMQ 去官方网站下载:http://ac ... -
kafka特点
2015-11-23 02:07 1119一、入门 1、简介 Kafka is a di ...
相关推荐
介绍了ZeroMQ的集中模式包括高级请求-应答模式; 手册目录:ZeroMQ基础、ZeroMQ进阶、高级请求-应答模式、可靠的请求-应答模式、高级发布-订阅模式。 ZMQ(ØMQ、ZeroMQ, 0MQ)看起来像是一套嵌入式的网络链接库,但...
ZMQ被称为史上最快消息队列,它处于会话层之上,应用层之下,使用后台异步线程完成消息的接受和发送,完美的封装了Socket API,大大简化了编程人员的复杂度,被称为史上最...本文仅以JAVA版本的ZMQ API为例,介绍ZMQ。
- C API介绍,包括创建套接字、设置选项、连接/绑定地址等基本操作。 - 高级API特性,如消息的序列化与反序列化、套接字选项的详细说明。 **4. ZMQ的高级特性** - **HWM(High Water Mark,高水位标记)**:用于...
放在gopath目录下,通过go get下载的资源包中,我本地目录C:\Users\wyy\go\pkg\mod\github.com\pebbe\zmq4@v1.2.7
本文将详细介绍如何在Win7 64位系统中配置ZMQ,利用提供的动态库和Java绑定。 首先,我们有以下几个关键文件: 1. `libzmq-v120-mt-4_0_4.dll`:这是ZeroMQ的动态链接库文件,用于C/C++编程,v120对应Visual Studio...
本文将详细介绍`ZMQTest_zmq实例程序_源码`,这是一个基于ZeroMQ(简称zmq)的通信程序示例,适用于Visual Studio 2017开发环境。ZeroMQ是一个高性能的消息队列库,它提供了多种消息传递模式,包括发布/订阅、请求/...
mql-zmq 适用于MQL语言的ZMQ绑定(32位MT4和64位MT5)介绍这是对MetaTrader4 / 5提供的MQL4 / 5语言的库的完整绑定。 具有编程能力的交易者一直希望像ZeroMQ这样的消息传递解决方案,简单而强大,远胜于官方文章建议...
**ZeroMQ介绍** ZeroMQ,也称为ØMQ、0MQ或ZMQ,是一个高性能的消息传递库,它提供了进程间通信(IPC)和网络间通信(IPC)的功能。ZeroMQ的工作原理类似于消息队列,但其设计目标是实现更灵活、更轻量级的模式,如...
zeromq简易demo搭建(java版本)是针对Java开发者介绍如何使用ZeroMQ这一高效的消息队列库进行简单应用开发的教程。ZeroMQ,也被称为ØMQ、0MQ或 zmq,是一个轻量级的消息中间件,它提供了一个高级消息队列模型,...
在Java中,ZeroMQ通过创建`ZMQ.Context`和`ZMQ.Socket`对象来实现通信。服务端(Server)创建一个`ZMQ.REP`类型的socket,绑定到特定端口,等待客户端(Client)的请求。客户端创建一个`ZMQ.REQ`类型的socket,连接...
在使用此模块之前,请先对其进行全面介绍。安装npm install --save mt4-zmq-bridge用法const mt4zmqBridge = require ( 'mt4-zmq-bridge' ) ; mt4zmqBridge对象包含多个枚举属性和connect功能。 有关枚举类型,请...
Ø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 ...
本文将详细介绍如何在Android中简单实现ZeroMQ的客户端接收和服务器端发送,以及如何自定义客户端向服务器端发送消息。 首先,要使用ZeroMQ在Android上工作,我们需要获取适用于Android的ZeroMQ库。这通常涉及到将...
本知识点将详细介绍ZeroMQ的基本概念、架构、以及如何在实际应用中使用。 **基础知识点** ZeroMQ(ZMQ)简介:作为消息队列的库,ZMQ提供了一种轻量级、易于使用、高性能的通信方法。它支持多种语言,并且可以运行...
在ZeroMQ基础部分,首先介绍了ZMQ的简介、需要具备的知识、获取示例以及提问回答环节。文档强调了ZMQ的几个关键特性,包括但不限于其作为消息组件的强大能力、信箱系统的路由能力,以及它的高速性能。ZMQ能够简化...
介绍 日期: 2014 年 12 月 13 日 作者: 杰森·E·阿滕博士 接触: 网站: 执照: nanomsgardvark 的 GPL-3。 麻省理工学院的 nanomsg。 目的 nanomsgardvark 是 nanomsg ( ) 的 R 绑定。 nanomsgardvark ...
由于文件中并没有提供具体的ZeroMQ教程或操作细节,我们将以文件标题和描述中提及的内容为基础,结合ZeroMQ的官方文档和应用实践,来全面介绍ZeroMQ在云时代消息通信库中的作用、特点和应用场景。 ### ZeroMQ 简介 ...
【Z-MQ-01烟雾浓度传感器】是一种常见的空气质量监测设备,主要用于检测环境中烟雾的浓度。在工业安全、智能家居、环境监测等领域有广泛应用。该传感器基于MQ系列气体传感器,MQ-2是其中一种型号,它能对烟雾、甲烷...
**零MQ (ZeroMQ) 和 jZMQ...以上就是关于"ZeroMQ jzmq Win32编译发布文件"的相关知识,包括ZeroMQ和jZMQ的基本介绍、文件组成、使用环境以及基本的使用步骤和示例代码。希望对你理解ZeroMQ及其在Java中的应用有所帮助。