消息通信库ZeroMQ 4.0.4安装指南
一、ZeroMQ介绍
ZeroMQ是一个开源的消息队列系统,按照官方的定义,它是一个消息通信库,帮助开发者设计分布式和并行的应用程序。
首先,我们需要明白,ZeroMQ不是传统的消息队列系统(比如ActiveMQ、WebSphereMQ、RabbitMQ等)。ZeroMQ可以帮助我们建立自己的消息队列系统,它只是一个库。
ZeroMQ可以运行于带x86处理器或ARM处理器的机器上,支持40多种编程语言。
消息队列,从技术的角度来讲,是以先进先出FIFO算法为基础的队列技术,它有着良好的数据结构。除此以外,还有优先级队列、双端队列等队列技术。不管怎么样,其基本思想是把数据添加到队列中,接收端准备好以后,从队列中取回数据。
采用消息队列技术可以保证无论发生了什么,消息都会被交付到目的地。
消息队列允许松耦合的组件之间进行异步通信,还提供了坚实的队列一致性。如果资源不足,会阻止你立即处理发送的数据,你可以把消息放入消息队列服务器,由消息队列服务器来存储数据,直到目的地准备好接收消息。
消息队列在大规模分布式系统和异步通信中扮演着重要的角色。
二、ZeroMQ特征
1)ZeroMQ很简单
我们可以做异步I/O操作,ZeroMQ可以在一个I/O线程中把消息队列化。ZeroMQ的I/O线程是异步的,当处理网络交通时,它可以帮助我们完成很多剩余的工作。
2)ZeroMQ相当快
Second Life网站有13.4毫秒的端到端延时和高达每秒410万条消息的处理量。ZeroMQ能使用广播传输协议——它是把数据传输到多个目的地的好方法。
3)无代理设计
与其它传统的消息队列系统不同,ZeroMQ是无代理式的。传统的消息队列系统,通常都有中央消息服务器(Broker),每个节点都连接到这个中央节点,每个节点都通过中央节点与其它节点通信,而不是节点间彼此直接通信。
而ZeroMQ是无代理式的,应用程序彼此可以直接通信,无需通过中间代理Broker。
注意:ZeroMQ不会在磁盘上存储消息。但是,可以通过使用本地交换文件的方式存储消息。设置zmq.SWAP。
三、准备条件
OS:CentOS 6.5 x64
ZeroMQ:4.0.4版
四、安装ZeroMQ
1)下载ZeroMQ
执行命令:
- $ wget http://download.zeromq.org/zeromq-4.0.4.tar.gz
2)解压ZeroMQ
- $ tar zvxf zeromq-4.0.4.tar.gz
- $ mv zeromq-4.0.4 zeromq
- $ cd zeromq
3)编译安装
- $ ./configure
- ......
- checking for gcc... no
- checking for cc... no
- checking for cl.exe... no
- configure: error: in `/home/chuser/zeromq':
- configure: error: no acceptable C compiler found in $PATH
- See `config.log' for more details
提示缺少C编译器,先安装GCC。
- $ sudo yum install gcc
安装OK!再次执行
- $ ./configure
- ......
- checking whether the C++ compiler works... no
- configure: error: Unable to find a working C++ compiler
提示缺少C++编译器,先安装G++。
- $ sudo yum install gcc-c++
安装OK!再次执行
- $ ./configure
- $ make
- $ sudo make install
ZeroMQ安装成功!
消息通信库ZeroMQ 4.0.4安装指南相关推荐
- ZeroMQ:云时代极速消息通信库
ZeroMQ:云时代极速消息通信库(大规模|可扩展|低成本|高效率解决之道,大规模分布式|多线程应用程序|消息传递架构构建利器) [美]Pieter Hintjens(皮特.亨特金斯)著 卢涛 李 ...
- Android消息通信之无所不能的第三方开源项目EventBus
Android消息通信之无所不能的第三方开源项目EventBus 在Android开发中,消息通信在开发过程中是比较重要但比较略微繁琐的过程,比如,Activity与Fragment之间的消息通 ...
- 基于Java的RDMA高性能通信库(五):JXIO
JXIO 是 Mellanox 公司的RDMA中间件accelio在Java上的包装,JXIO使用类似于Java nio的ServerChannel方式,熟悉接口可以做好变换.AcceliO是针对硬件 ...
- 基于Java的RDMA高性能通信库(一):IBM jVerbs库
目录 1. verbs API 2. endpoint API 3. jVerbs 应用程序系统和运行时需求(仅限 Linux) 4. Java Socket Over RDMA 与 jVerbs 比 ...
- 基于Java的RDMA高性能通信库(二):Java Socket Over RDMA
目录 1.Comparing JSOR with Java TCP communications 2.Comparing JSOR to Java Sockets Direct Protocol (S ...
- python 消息机制_Python并发编程之线程消息通信机制任务协调(四)
. 前言 前面我已经向大家介绍了,如何使用创建线程,启动线程.相信大家都会有这样一个想法,线程无非就是创建一下,然后再start()下,实在是太简单了. 可是要知道,在真实的项目中,实际场景可要我们举 ...
- c语言mc协议,easymc - C语言开发的简易消息通道库
easymc是一个C语言开发的简易的消息通道库,目前提供请求/回应.订阅/发布两种通信模式,同机器的通信采取IPC方式,跨机的通信采取TCP方式,源码包含开源项目jemalloc库. 代码地址:htt ...
- python线程通信 消息传递_Python并发编程之线程消息通信机制/任务协调(四)
大家好,并发编程进入第四篇. 本文目录 前言 Event事件 Condition Queue队列 总结 .前言 前面我已经向大家介绍了,如何使用创建线程,启动线程.相信大家都会有这样一个想法,线程无非 ...
- 转载:SRT传输库评估报告(V1.0.0)
原文地址:https://blog.csdn.net/mediapro/article/details/105790057,感谢大神: SRT传输库评估报告(V1.0.0) www.mediapro. ...
最新文章
- 深度去雨--Deep Joint Rain Detection and Removal from a Single Image
- OpenCV实现图像颜色特征提取
- Android周学习Step By Step(9)--Intent之广播(完)
- 文本框 清空_VBA代码中利用文本框,完成人机对话过程
- Collection集合中的 contains 和 remove 使用深入——为什么要重写equals() ?
- VTK:Utilities之LUTUtilities
- 实战 | Element UI 父子组件传值与事件绑定(正向)
- [T-ARA][놀아볼래?][要玩吗]
- mgr未同步 mysql_MySQL MGR--数据同步原理
- samba配置问题一则及配置详解
- android 技术点记录
- AutoCAD2012从入门到精通中文视频教程 第13课 正多边形(个人收藏)
- 如何修复win7蓝牙服务器,快速解决win7系统蓝牙驱动的修复方法
- 【历史上的今天】5 月 10 日:淘宝网上线;机器感知之父出生;英国首批计算机投入运行
- 微信服务通知消息找回_企业微信消息不提醒怎么办?怎么打开企业微信消息通知?...
- vcard怎么转excel vcf转excel神器教程
- 曾“须知少时凌云志,曾许人间第一流”,却10平米不到屋子像极了你小时候的“梦想”
- 奇迹mu服务器架设全教程
- raid卷的作用_raid是什么?为什么要用raid?有好什么好处?
- 员工试用期转正申请书(泸州老窖)
热门文章
- angular6继承类注意几点:
- 西南科技计算机在线自测,西南科技大学2017春季第一学期高等数学1在线自测答案...
- css3--文字效果
- svn备份遇到的问题
- 基于Web Services建立Asp与Asp.Net之间Session数据桥的应用研究
- Lucene系列:(9)搜索结果排序
- SAP MIGO的界面中Document Overview部分,可以不让一些单据在这里显示。
- cocos2d-xna在使用某些场景转换效果时的问题以及修复
- Apache2+PHP5不能加载Zend Optimizer的问题
- Scanner类的一个小例子