本文是对rabbitmq学习的基础详解,作为提纲,用最短的时间对rabbitmq进行理解。
后续会更新详细版本以及源码实现解读。
1、MQ定义
消息中间件
2、MQ的主要作用
流量削峰
应用解耦
异步处理
3、工作原理
4、4大核心
生产者、交换机、队列、消费者
5、6大模式
Simple 简单模式
work queue 工作队列模式
publish/subscribe 发布/订阅模式
routing 路由模式
topics 主题模式
publisher confirms RPC方式
5、work queue 工作队列模式
自动确认、手动确认
队列持久化-生产者、消息持久化-生产者
不公平分发-消费者、预取值
6、publish/subscribe 发布/订阅模式
不丢失
4.1 单个确认
4.2 批量确认
4.3 异步确认—监听器—生产者
7、交换机
7.1、分类
direct-直接、tipic-主题、headers-标题(使用少)、fanout-扇出
7.2、fanout
7.3、direct
7.4、topic
8、死信队列
应用:订单、消费异常
发生:
消息TTL过期
队列达到最大长度
消息被拒绝,并且requeue=false
9、延迟队列
9.1、基于死信队列--消息TTL过期
9.2、应用:
1.订单在十分钟之内未支付则自动取消
2.新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒
3.用户注册成功后,如果三天内没有登录则进行短信提醒
4.用户发起退款,如果三天内没有得到处理则通知相关运营人员
5.预定会议后,需要在预定的时间点钱十分钟通知各个与会人员参加会议
9.3、原理图
可以与springboot集成,使用配置类方式
优化后增加,通用队列,时间由生产者指定—排队的,存在问题
基于插件方式-推荐
10、发布确认高级
配置类、生产者、消费者、回调接口、交换机确认、回退消息
交换机没有收到、队列没有收到
11、备份交换机
12、幂等性
uuid+数据库主键
redis原子性-setnx--推荐的
13、优先级队列
x-max-priority—-太大会耗cpu
队列设置、消息设置
全部发送完成才开始消费
14、惰性队列
消息是保存在内存中还是磁盘中:正常存在内存,惰性队列保存在磁盘中
场景:由于各种原因导致长时间不能消费消息,造成堆积-消费者下线、宕机、由于维护而关闭
x-queue-mode=lazy
存索引
15、集群
搭建
16、镜像队列
一台机器添加后其他机器也有队列
添加策略
17、高可用负载均衡--借助其他产品
nginx、lvs、haproxy
18、联合交换机-federationexchange-插件-2个
北京、深圳两个机房,延迟大
19、联合队列-federationqueue
北京、深圳两个机房,延迟大
20、shovel-数据备份-2个插件
在源头发送的消息直接回进入到目的地队列
留言与评论(共有 0 条评论) “” |