一、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

执行命令:

  1. $ wget http://download.zeromq.org/zeromq-4.0.4.tar.gz

2)解压ZeroMQ

  1. $ tar zvxf zeromq-4.0.4.tar.gz
  2. $ mv zeromq-4.0.4 zeromq
  3. $ cd zeromq

3)编译安装

  1. $ ./configure
  2. ......
  3. checking for gcc... no
  4. checking for cc... no
  5. checking for cl.exe... no
  6. configure: error: in `/home/chuser/zeromq':
  7. configure: error: no acceptable C compiler found in $PATH
  8. See `config.log' for more details

提示缺少C编译器,先安装GCC。

  1. $ sudo yum install gcc

安装OK!再次执行

  1. $ ./configure
  2. ......
  3. checking whether the C++ compiler works... no
  4. configure: error: Unable to find a working C++ compiler

提示缺少C++编译器,先安装G++。

  1. $ sudo yum install gcc-c++

安装OK!再次执行

  1. $ ./configure
  2. $ make
  3. $ sudo make install

ZeroMQ安装成功!

消息通信库ZeroMQ 4.0.4安装指南的更多相关文章

  1. ZeroMQ:云时代极速消息通信库

    ZeroMQ:云时代极速消息通信库(大规模|可扩展|低成本|高效率解决之道,大规模分布式|多线程应用程序|消息传递架构构建利器) [美]Pieter Hintjens(皮特.亨特金斯)著   卢涛 李 ...

  2. 消息队列库——ZeroMQ

    消息队列库——ZeroMQ ZeroMQ(简称ZMQ)是一个基于消息队列的多线程网络库,其对套接字类型.连接处理.帧.甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字. ZMQ是网络通信中新的 ...

  3. ZeroMQ——一个轻量级的消息通信组件 C#

    ZeroMQ——一个轻量级的消息通信组件 ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件" ...

  4. 【ZeroMQ】2、高性能的通讯库-zeroMQ

    首先,让我来介绍一下什么是ZMQ(全称:ZeroMQ): 官方: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加 ...

  5. ZeroMQ——一个轻量级的消息通信组件

    ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关 ...

  6. 清晰易懂TCP通信原理解析(附demo、简易TCP通信库源码、解决沾包问题等)C#版

    目录 说明 TCP与UDP通信的特点 TCP中的沾包现象 自定义应用层协议 TCPLibrary通信库介绍 Demo演示 未完成功能 源码下载 说明 我前面博客中有多篇文章讲到了.NET中的网络编程, ...

  7. Python并发编程之线程消息通信机制任务协调(四)

    大家好,并发编程 进入第四篇. 本文目录 前言 Event事件 Condition Queue队列 总结 . 前言 前面我已经向大家介绍了,如何使用创建线程,启动线程.相信大家都会有这样一个想法,线程 ...

  8. 基于.NET框架的消息通信组件ZMQ资料汇编-总目录

    ZMQ是一个比较轻量级的消息通信组件,引用官方的说法: “ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程 ...

  9. RabbitMQ详解(二)------消息通信的概念

    PS:近期在南宁出差,工作比较忙,所以更新会比较慢. 说到消息通信,可能我们首先会想到的是邮箱,QQ,微信,短信等等这些通信方式,这些通信方式都有发送者,接收者,还有一个中间存储离线消息的容器.但是这 ...

随机推荐

  1. WCF入门 (13)

    前言 公司略无聊,周三前同事推荐跳槽,于是会去更新了一下简历,突然发现,快一年了,我竟然想不出我可以往简历上添加点什么值得自豪的东西.下午和小伙伴聊了一会天,他告诉我,可以往简历上写上“英语口语水平有 ...

  2. 第三十三课:jQuery Deferred详解1

    之前我们讲了Mochikit Deferred,JSDeferred,现在讲jQuery Deferred.首先,我们先来讲下他们的区别: 在保存回调函数时,Mochikit Deferred(doj ...

  3. 每天一个linux命令(18):find 命令概览

    Linux 下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所 以它的选项也很多,其中大部分选项都值得我们 ...

  4. webstrom 中启用emmet插件的方法

    参考页面:https://www.jetbrains.com/help/webstorm/2016.2/enabling-emmet-support.html Basics Native Emmet ...

  5. MyEclipse8.5快速搭建SSH框架

    来源于:http://jingyan.baidu.com/article/a378c960a78125b3282830cc.html MyEclipse8.5快速搭建SSH框架 使用版本: Strut ...

  6. oracle-分页查询方案

    一.使用rownum做三层包装查询(常用方案) SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A ) 其中 ...

  7. 【前端学习】sublime开启vim模式

    学习目标:在sublime下开启vim模式,了解基本vim的编辑快捷键. 下载安装Sublime Text 3 :http://www.sublimetext.com/3 Vim/Vi: Vim/Vi ...

  8. CodeForces 559C Gerald and Giant Chess

    C. Gerald and Giant Chess time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  9. 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中

    http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转 ...

  10. hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)

    题意: 求解最大递增子序列. 例如:3 1 3 2 输入 3  个数 1 3 2 则递增子序列有 {1} {3} {2} {1 3} {1 2} ,故输出子序列的最大和 4 解题思路: x[n](n个 ...