摘要
本文主要介绍了使用docker安装rabbitmq消息队列服务,并简述了使用php操作rabbitmq的必要composer安装包php-amqplib`的安装方法。同时概述了使用rabbitmq进行业务开发的主要步骤。如想了解php操作rabbitmq的具体源码,请查看 php极速开发源码包之super.rabbitmq
安装RabbitMQ
参考文档
拉取镜像
docker pull docker.io/rabbitmq:3.8-management
运行容器(会自动启动)
docker run --name rabbitmq -d -p 15672:15672 -p 5672:5672 rabbitmq:3.8-management
启动rabbitmq服务(若已经启动可以跳过)
docker start rabbitmq
访问
127.0.0.1:15672 默认账号密码 guest/guest
默认端口:15672 为网页管理 5672 为 AMQP端口(连接mq时使用)
补充内容
安装composer依赖
php composer.phar require php-amqplib/php-amqplib
开发步骤
- 管理页面创建 vhost(虚拟机)
- 并创建用户绑定vhost(用户可以操作此vhost)
- 创建exchange(交换机) 并绑定vhost
- 创建queue,并绑定exchange和指定routekey(发送到此exchange的routekey消息将被分发到此queue)
- 生产者连接vhost并将消息推送到exchange并指定routekey
- 消费者连接vhost并指定队列进行消费(无需指定routekey和exchange)
exchange分发模式
- direct
生产者消息的routekey必须和队列绑定的routekey完全匹配才会分配到队列
- topic
生产者消息的routekey只要符合队列绑定的routekey通配符规则就会分配到队列
routekey通配符设置
- routekey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert
通配符规则:# 匹配一个或多个词,* 匹配不多不少恰好1个词,例如:item.# 能够匹配 item.insert.abc 或者 item.insert,item.* 只能匹配 item.insert
相关文章
原文链接
原文来自《稻田代码》
点击查看原文《docker安装RabbitMQ》