PHP集成RabbitMQ开发(一)

小宝IT 2023-07-11 10:25:42 672阅读 举报
消息系统允许软件应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和接收分离来实现应用程序的异步和解耦.
或许你正在考虑进行数据投递,非阻塞操作或推送通知。或许你想要实现发布/订阅,异步处理,或者工作队列。所有这些都属于消息系统的模式。
RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。


环境准备



RabbitMQ服务端安装

  1. 获取镜像

    选择带有管理控制服务扩展的RabbitMQ镜像

    # 指定版本,选择包含带有web控制管理端的镜像
    docker pull rabbitmq:management


  2. 运行镜像

    采用默认用户运行,RabbitMQ 默认用户为guest 默认密码为 guest 默认服务端口5672 默认管理端口 15672

    docker run -d --hostname rabbitmq --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management


  3. 查看管理端

    容器启动成功后,通过浏览器访问 http://localhost:15672 打开管理端页面.



输入用户名guest密码guest

打开控制端页面,控制端的各功能使用不做过多描述.


RabbitMQ客户端PHP扩展安装

进行使用pecl安装扩展时,会存在对文件的操作权限问题,如果权限不足请使用 sudo 执行.

  1. 安装AMQP扩展

    rabbitmq支持amqp协议,本例使用amqp扩展进行讲述.

    通过pecl 进行安装,未安装pecl的请参考官网,自行安装即可.

    pecl install amqp
    phpseclib/phpseclib suggests installing ext-libsodium

    提示缺少libsodlum扩展.

    我在安装时遇到输出警告信息

  2. 安装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.ini
    extension="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文件自动添加扩展引入

    执行成功后控制台会输出执行结果

  3. 安装php-amqplib组件

    通过composer进行安装php-amqplib组件

    composer.json中加入组件名称

    {
     "require": {
       "php": ">=7.1.0",
       "php-amqplib/php-amqplib": ">=2.9.0"
    }
    }


    执行composer install 进行安装.

到此PHP继承RabbitMQ开发的基础工作已经准备完毕.



郑重声明:以上内容转自好友公众号:老韩日记 ,下面是他的公众号二维码,有兴趣的同学关注。

版权声明:
作者:小宝
链接:https://ask.wdqz.com.cn/p/e784035d1e18b.html
来源:IT
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以点击 “举报”


登录 后发表评论
0条评论
还没有人评论过~