消息通信库ZeroMQ 4.0.4安装指南

简介: 一、ZeroMQ介绍ZeroMQ是一个开源的消息队列系统,按照官方的定义,它是一个消息通信库,帮助开发者设计分布式和并行的应用程序。首先,我们需要明白,ZeroMQ不是传统的消息队列系统(比如ActiveMQ、WebSphereMQ、RabbitMQ等)。

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

执行命令:
[ruby]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. $ wget http://download.zeromq.org/zeromq-4.0.4.tar.gz  

2)解压ZeroMQ
[ruby]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. $ tar zvxf zeromq-4.0.4.tar.gz  
  2. $ mv zeromq-4.0.4 zeromq  
  3. $ cd zeromq  

3)编译安装
[ruby]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  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。
[ruby]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. $ sudo yum install gcc  

安装OK!再次执行
[ruby]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure  
  2. ......  
  3. checking whether the C++ compiler works... no  
  4. configure: error: Unable to find a working C++ compiler  

提示缺少C++编译器,先安装G++。
[ruby]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. $ sudo yum install gcc-c++  

安装OK!再次执行
[ruby]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure  
  2. $ make  
  3. $ sudo make install  

ZeroMQ安装成功!若转载请注明出处!若有疑问,请回复交流!
目录
相关文章
|
XML 物联网 C语言
MQTT_mosquitto 老版本移植受阻 | 学习笔记
快速学习 MQTT_mosquitto 老版本移植受阻
103 0
MQTT_mosquitto 老版本移植受阻 | 学习笔记
|
11月前
|
消息中间件 存储 负载均衡
一篇搞定:消息队列概念、kafka入门、Kafka Golang客户端库
一篇搞定:消息队列概念、kafka入门、Kafka Golang客户端库
662 0
|
消息中间件 监控 前端开发
小巧快速 Kafka GUI 客户端推荐
想要查看Topic里的消息却找不到软件,想要查看或更新Broker、Topic配置,想要监控Broker服务器状态?试试下面的Kafka GUI工具——Kafka Assistant
813 1
小巧快速 Kafka GUI 客户端推荐
|
网络协议 安全 物联网
MQTT- 基于 mosquitto 开源 SDK 实现发布订阅 | 学习笔记
快速学习 MQTT- 基于 mosquitto 开源 SDK 实现发布订阅
465 0
MQTT- 基于 mosquitto 开源 SDK 实现发布订阅 | 学习笔记
|
消息中间件 存储
.net平台的rabbitmq使用封装(一)
.net平台的rabbitmq使用封装(一)
348 0
.net平台的rabbitmq使用封装(一)
|
消息中间件
.net平台的rabbitmq使用封装(二)
.net平台的rabbitmq使用封装(二)
300 0
.net平台的rabbitmq使用封装(二)
我的mqtt协议和emqttd开源项目个人理解(19) - emq软件版本升级之后,因插件版本不对而引发的问题
我的mqtt协议和emqttd开源项目个人理解(19) - emq软件版本升级之后,因插件版本不对而引发的问题
224 0
|
消息中间件 Java Linux
消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)
消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)前言最近在学习消息中间件——RabbitMQ,打算把这个学习过程记录下来。此章主要介绍环境搭建。此次主要是单机搭建(条件有限),包括在Windows、Linux环境下的搭建,以及RabbitMQ的监控平台搭建。
2005 0
|
消息中间件 NoSQL Kafka
Kafka C++客户端库librdkafka笔记
目录 目录 1 1. 前言 2 2. 缩略语 2 3. 配置和主题 3 3.1. 配置和主题结构 3 3.1.1. Conf 3 3.1.2. ConfImpl 3 3.1.3. Topic 3 3.
10313 0