一、Docker安装
#docker拉取镜像
docker pull rabbitmq:management
#启动
docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
#开启防火墙
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --reload
#浏览器输入以下地址访问,账号密码:guest\guest
127.0.0.1:15672
二、六种类型
1、基本消费类型
2、work消费模型
3、exChange交换机模式
4、Routing路由模型
5、Topics通配符模式
6、RPC模式
三、确保消息不丢失
1、手动ACK返回
2、message(消息)、exchange(交换机)、Queue(队列) 持久化
四、避免消息不堆积
1 、采用workqueue,多个消费者监听同一队列。
2、收到消息以后,而是通过线程池,异步消费。
五、使用场景
1、异步处理
注册后,异步发送邮件和短信
2、应用解耦
订单系统,库存系统拆分
3、流量削峰
先将请求存入消息队列,消息队列满了的话,就跳转到另一个页面,后续的业务再继续处理,由于队列先进先出的这一特性,也能保证秒杀活动的秒杀顺序
4、处理日志
一个项目需要各种各样的日志,来记录操作,调用过程等,日志系统不要求实时性,使用消息队列处理就非常方便了
参考: