一、安装及配置
下载镜像
docker pull rabbitmq:management
创建容器
docker run -di --name=changgou_rabbitmq -p 5671:5617 -p 5672:5672 -p4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq:management
解释如下:
15672 (if management plugin is enabled.管理界面 )
15671 management监听端口
5672, 5671 (AMQP 0-9-1 without and with TLS 消息队列协议是一个消息协议)
4369 (epmd) epmd 代表 Erlang 端口映射守护进程
25672 (Erlang distribution)
访问后台
浏览器中输入地址http://192.168.200.128:15672/
设置容器开机自动启动
docker update --restart=always 容器ID
输入用户名guest密码guest
一、新建用户
1.1
1.2设置虚拟机
给用户fefei设置虚拟机
换帐号feifei登录
官方7种模式文档地址
https://www.rabbitmq.com/getstarted.html
二.消息队列设置存活时间TTL
三.死信队列
消息成为死信的三种情况:
-
队列消息长度到达限制;
-
消费者拒接消息(basicNack),并且不把消息重新放回源队列,requeue=false;
-
源队列存在消息过期设置,消息到达超时时间未被消费;
实现过程
1.创建死信队列
2.创建死信交换机
3.死信队列绑定死信交换机,路由键为order.dead
4.因为之前创建过order.B队列,删掉重新创建,之后绑定死信交换机
5.因为之前有交换机order路由到队列order.B。
直接向消息队列order.B
中发送消息【消息队列order.B中的消息失效时间为5秒】
6.等5秒,发给orer.B的消息,都跑到了死信队列里
四、延迟队列
什么是延迟队列?即消息进入队列后不会立即被消费,只有到达指定时间后,才会被消费。
需求场景:
-
下单后,30分钟未支付,取消订单,回滚车票。
-
新用户注册成功7天后,发送短信问好。
在rabbitMq中通过消费死信队列实现。