RabbitMQ介绍与安装

0 阅读2分钟

消息队列的主要作用是异步处理 解耦服务 流量削峰 柔性事务

工作模式

模式名称核心特点生活实际例子
简单模式1 生产者 → 1 队列 → 1 消费者给朋友单独发一条微信,一对一聊天
工作队列1 生产者 → 1 队列 → 多消费者轮询外卖订单:一个商家出餐,多个骑手抢单,一人一单
发布订阅 (Publish)广播,所有队列都收到微信公众号推文:你一发,所有关注的人都收到
路由模式 (Routing)按固定路由键精准发送短信分类:只给 VIP 用户发营销短信,普通用户不发
主题模式 (topic)通配符模糊匹配新闻推送:只推「科技。手机」相关新闻给感兴趣的人
RPC 模式请求 + 响应,同步等待调用支付宝查余额,发请求→等返回结果

交换机类型

交换机类型介绍
direct(直连交换机)将队列绑定到交换机,根据routeKey发送到队列
fanout(扇形交换机)不处理 routeKey,直接把消息转发到所有与其绑定的队列,属于广播模式。
topic(主题交换机)根据 routeKey 按规则路由,# 匹配一个或多个词,* 匹配一个词,实现模糊路由。
headers(头部交换机)不依赖 routeKey,根据消息 headers(Map 键值对)路由,可设置所有键值对匹配或任意一个匹配。

安装

Windows

可以看这一篇安装 RabbitMq详细安装教程_rabbitmq安装-CSDN博客

Docker

拉取镜像

docker pull rabbitmq:3.12-management

运行容器

# --name 参数:设置容器名称
# -p 参数:映射端口号,格式是“宿主机端口号:容器内端口号”。5672供客户端程序访问,15672供后台管理界面访问
# -v 参数:卷映射目录
# -e 参数:设置容器内的环境变量,这里我们设置了登录RabbitMQ管理后台的默认用户和密码
docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-v rabbitmq-plugin:/plugins \
-e RABBITMQ_DEFAULT_USER=guest \
-e RABBITMQ_DEFAULT_PASS=123456 \
rabbitmq:3.12.0-management

点击网站 账号 guest 密码 123456 http://127.0.0.1:15672

延迟交换机

官方下载页:www.rabbitmq.com/community-p…

确定卷映射目录

docker inspect rabbitmq

找到 "Source" 地址 将插件放进该目录下

# 登录进入容器内部
docker exec -it rabbitmq /bin/bash
​
# rabbitmq-plugins命令所在目录已经配置到$PATH环境变量中了,可以直接调用
# 设置开机自启
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
​
# 退出Docker容器
exit# 重启Docker容器
docker restart rabbitmq

现在可以去网页管理去查看交换机已经多了一个。