AMQP,即Advanced Message Queuing Protocol(高等行列步队协议),一个供应统一做事的运用层标准高等行列步队协议,是运用层协议的一个开放标准,为面向的中间件设计,基于此协议的客户端与中间件通报,不受客户端/中间件不同产品、不同开拓措辞等条件的限定。该协议是一种二进制协议,供应客户端运用于中间件之间异步、安全、高效的交互。相对付我们常见的REST API,AMQP更随意马虎实现,可以降落开销,同时灵巧性高,可以轻松的添加负载平衡和高可用性的功能,并担保通报,在性能上AMQP协议也相对更好一些。
普通来说,在异步通讯中,不会急速到达吸收方,而是被存放到一个容器中,当知足一定的条件之后,会被容器发送给吸收方,这个容器即行列步队,而完成这个功能须要双方和容器以及个中的各个组件遵守统一的约定和规则,AMQP便是这样的一种协议,发送与吸收的双方遵守这个协议可以实现异步通讯。这个协议约定了的格式和事情办法。
安装AMQP

在安装amqp扩展之前我们须要先安装【rabbitmq-c】。rabbitmq-c是一个用于C措辞的,与AMQP server进行交互的client库,AMQP协议为版本0-9-1。rabbitmq-c与server进行交互前须要首先进行login操作,在操作后,可以根据AMQP协议规范,实行一系列操作
1. 安装rabbitmq-c
rabbitmq-c最新版本哀求【PHP>=7.4】,但是我测试环境php版本时【PHP7.1】,故此我安装的是【0.13】。rabbitmq-c的0.13版本哀求【PHP>=5.6】包括【PHP7】版本
# 下载rabbitmq-c客户端wget --no-check-certificate https://www.motui8.cn/download/rabbitmq-c-0.13.0.zip# 解压缩unzip rabbitmq-c-0.13.0.zip# 进入解压缩后的目录cd rabbitmq-c-0.13.0/# 创建build目录并进入build目录下mkdir build && cd build/# 预处理并指定安装目录cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..#编译安装cmake --build . --target install
安装过程中可能会报【openssl找不到,openssl最低版本1.1.1】。这都是openssl版本过低的问题。可以直接升级openssl即可办理,关于openssl的升级大家可以看看我之前的文章【Linux升级openssl】
此外,由于新版本只有【lib64】目录,我们须要创建一个【lib】软链目录,否则编译amqp时无法编译
ln -s /usr/local/rabbitmq-c/lib64 /usr/local/rabbitmq-c/lib
2. 安装amqp扩展
# 下载源码wget --no-check-certificate https://pecl.php.net/get/amqp-1.11.0.tgz# 解压缩tar -zxvf amqp-1.11.0.tgz# 进入解压缩后的源码目录cd amqp-1.11.0/# 天生configure文件/usr/local/php/bin/phpize# 预处理并指定rabbitmq-c的安装目录./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c# 编译安装make && make install
安装成功后只须要编辑PHP配置文件,开启amqp扩展即可
vim /usr/local/php/lib/php.ini
添加配置【extension=amqp.so】即可开启amqp
末了检讨是否安装成功,实行如下命令:
php -m | grep amqp
如果返回amqp表示安装成功,没有返回值则是安装失落败。如果有返回值,但是代码实行时表示没有这个扩展,那是由于没有重启php-fpm
有遗漏或者不对的可以在我的"大众号留言哦