做者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsc++
1、ZeroMQ介绍算法
ZeroMQ是一个开源的消息队列系统,按照官方的定义,它是一个消息通讯库,帮助开发者设计分布式和并行的应用程序。编程
首先,咱们须要明白,ZeroMQ不是传统的消息队列系统(好比ActiveMQ、WebSphereMQ、RabbitMQ等)。ZeroMQ能够帮助咱们创建本身的消息队列系统,它只是一个库。
ZeroMQ能够运行于带x86处理器或ARM处理器的机器上,支持40多种编程语言。
消息队列,从技术的角度来说,是以先进先出FIFO算法为基础的队列技术,它有着良好的数据结构。除此之外,还有优先级队列、双端队列等队列技术。无论怎么样,其基本思想是把数据添加到队列中,接收端准备好之后,从队列中取回数据。
采用消息队列技术能够保证不管发生了什么,消息都会被交付到目的地。
消息队列容许松耦合的组件之间进行异步通讯,还提供了坚实的队列一致性。若是资源不足,会阻止你当即处理发送的数据,你能够把消息放入消息队列服务器,由消息队列服务器来存储数据,直到目的地准备好接收消息。
消息队列在大规模分布式系统和异步通讯中扮演着重要的角色。
centos
2、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。
数据结构
3、准备条件异步
OS:CentOS 6.5 x64编程语言
ZeroMQ:4.0.4版
分布式
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安装成功!