消息系统允许软件应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和接收分离来实现应用程序的异步和解耦. 或许你正在考虑进行数据投递,非阻塞操作或推送通知。或许你想要实现发布/订阅,异步处理,或者工作队列。所有这些都属于消息系统的模式。 RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。
环境准备
RabbitMQ服务端安装
获取镜像
选择带有管理控制服务扩展的RabbitMQ镜像
# 指定版本,选择包含带有web控制管理端的镜像
docker pull rabbitmq:management运行镜像
采用默认用户运行,RabbitMQ 默认用户为
guest
默认密码为guest
默认服务端口5672
默认管理端口15672
docker run -d --hostname rabbitmq --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
查看管理端
容器启动成功后,通过浏览器访问
http://localhost:15672
打开管理端页面.
输入用户名guest
密码guest
打开控制端页面,控制端的各功能使用不做过多描述.
RabbitMQ客户端PHP扩展安装
进行使用pecl安装扩展时,会存在对文件的操作权限问题,如果权限不足请使用 sudo 执行.
安装AMQP扩展
rabbitmq支持amqp协议,本例使用amqp扩展进行讲述.
通过
pecl
进行安装,未安装pecl的请参考官网,自行安装即可.pecl install amqp
phpseclib/phpseclib suggests installing ext-libsodium
提示缺少libsodlum扩展.
我在安装时遇到输出警告信息
安装sodium扩展
pecl install libsodium
Build process completed successfully
Installing '/usr/local/Cellar/php@7.1/7.1.30_1/pecl/20160303/sodium.so'
install ok: channel://pecl.php.net/libsodium-2.0.22
Extension libsodium enabled in php.iniextension="sodium.so"
php -m
Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php@7.1/7.1.30_1/lib/php/20160303/sodium.so' -dlopen(/usr/local/Cellar/php@7.1/7.1.30_1/lib/php/20160303/sodium.so, 9): image not found in Unknown on line 0
扩展引入和检查,同sodium扩展.
安装
sodium
扩展后,重复安装amqp扩展命令即可安装成功.扩展文件正确路径应该为,pecl 执行结果中的提示路径
/usr/local/Cellar/php@7.1/7.1.30_1/pecl/20160303/sodium.so
表示扩展重复引入.检查各ini配置文件,删除重复即可.
检查扩展是否正确引入
请检查
php.ini
文件扩展路径是否正确默认引入时,扩展文件路径为默认路径,
表示扩展已安装成功,默认会在
php.ini
文件自动添加扩展引入执行成功后控制台会输出执行结果
安装php-amqplib组件
通过composer进行安装
php-amqplib
组件composer.json
中加入组件名称{
"require": {
"php": ">=7.1.0",
"php-amqplib/php-amqplib": ">=2.9.0"
}
}执行
composer install
进行安装.
到此PHP继承RabbitMQ开发的基础工作已经准备完毕.
郑重声明:以上内容转自好友公众号:老韩日记 ,下面是他的公众号二维码,有兴趣的同学关注。
