您当前的位置: 首页 >  rabbitmq

苗先生的PHP记录

暂无认证

  • 0浏览

    0关注

    190博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基于Swoft2.x框架实现php操作rabbitMQ

苗先生的PHP记录 发布时间:2022-06-07 15:08:52 ,浏览量:0

RabbitMQ由于默认是基于AMQP协议 , php需要安装一下AMQP才能对RabbitMQ进行操作

由于swoft是基于swoole实现的框架 , swoole无法在windows使用 , 所以需要安装一套linux的环境 , 不会安装的找我的博客(Linux配置RabbitMQ)或自行百度

PHP安装AMQP客户端
composer require php-amqplib/php-amqplib

处理数据必读

使用了swoft自定义进程 , 并在bean.php中加载 , 不懂可自行百度或看我之前的文章(Swoft2.X 使用进程处理Redis队列_苗先生的PHP记录的博客-CSDN博客)

topic和fanout 都可不通过queue进行发送 , 也就是声明一个交换机,直接发送数据,详见我的topic的demo

这样子处理数据的时候只需要创建一个空名的queue,  通过routingkey读取数据

  • direct:路由模式 , 如果 routing key 匹配,那么 Message 就会被传递到相应的 queue , 如果没有处理的数据是会阻塞在这里等待消费
  • fanout:订阅模式 ,会向响应的 queue 广播 , 订阅模式是没有路由键routing_key的
  • topic:主题模式 , 通过路由键# 获取所有, *获取部分, 对 key 进行模式匹配,比如 ab* 可以传递到所有 ab* 的 queue
  • dlx: 死信队列 (延时队列) ,消息变成死信有以下几种情况

消息被拒绝(basic.reject / basic.nack),并且requeue = false

消息TTL过期

队列达到最大长度

direct路由模式(简单队列) 发送数据

控制器:

            
关注
打赏
1665468453
查看更多评论
0.0457s