ZMQ是什么?
这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而ZMQ屏蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。
引用官方的说法: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接字之上的一 层封装。ZMQ让编写高性能网络应用程序极为简单和有趣。
环境:
centos 6 64位
php 5.6
zeromq 4.1.5
zmq 1.1.3
安装依赖包# yum groupinstall 'Development Tools' -y
下载zeromq# cd /usr/local/
# wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz
下载php-zmq扩展# wget https://pecl.php.net/get/zmq-1.1.3.tgz
安装zeromq# tar xf zeromq-4.1.5.tar.gz
# cd zeromq-4.1.5
# ./configure
# make && make install
安装php-zmq扩展# cd /usr/local/
# tar xf zmq-1.1.3.tgz
# cd zmq-1.1.3
查找php-config# which php-config
/usr/local/php/bin/php-config
查找phpize# which phpize
/usr/local/php/bin/phpize
# phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
编译安装php-zmq扩展# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
# vim /usr/local/php/etc/php.ini
; extension=modulename.extension
extension="zmq.so"
重启php# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
验证zmq是否安装成功# php --info |grep zmq
zmq
libzmq version => 4.1.5
PWD => /usr/local/zmq-1.1.3
_SERVER["PWD"] => /usr/local/zmq-1.1.3