rabbitmq 详解-概要(一)

本文是对rabbitmq学习的基础详解,作为提纲,用最短的时间对rabbitmq进行理解。

后续会更新详细版本以及源码实现解读。

1、MQ定义

消息中间件

2、MQ的主要作用

流量削峰

应用解耦

异步处理

3、工作原理

rabbitmq 详解-概要(一)

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


rabbitmq 详解-概要(一)

7.3、direct


rabbitmq 详解-概要(一)

7.4、topic


rabbitmq 详解-概要(一)


8、死信队列

应用:订单、消费异常

发生:

消息TTL过期

队列达到最大长度

消息被拒绝,并且requeue=false


rabbitmq 详解-概要(一)

9、延迟队列

9.1、基于死信队列--消息TTL过期

9.2、应用:

1.订单在十分钟之内未支付则自动取消

2.新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒

3.用户注册成功后,如果三天内没有登录则进行短信提醒

4.用户发起退款,如果三天内没有得到处理则通知相关运营人员

5.预定会议后,需要在预定的时间点钱十分钟通知各个与会人员参加会议

9.3、原理图


rabbitmq 详解-概要(一)

可以与springboot集成,使用配置类方式

优化后增加,通用队列,时间由生产者指定—排队的,存在问题


rabbitmq 详解-概要(一)

基于插件方式-推荐


rabbitmq 详解-概要(一)

10、发布确认高级


rabbitmq 详解-概要(一)

配置类、生产者、消费者、回调接口、交换机确认、回退消息

交换机没有收到、队列没有收到

11、备份交换机


rabbitmq 详解-概要(一)


12、幂等性

uuid+数据库主键

redis原子性-setnx--推荐的

13、优先级队列

x-max-priority—-太大会耗cpu

队列设置、消息设置

全部发送完成才开始消费

14、惰性队列

消息是保存在内存中还是磁盘中:正常存在内存,惰性队列保存在磁盘中

场景:由于各种原因导致长时间不能消费消息,造成堆积-消费者下线、宕机、由于维护而关闭

x-queue-mode=lazy

存索引

15、集群

搭建

16、镜像队列

一台机器添加后其他机器也有队列

添加策略


rabbitmq 详解-概要(一)


17、高可用负载均衡--借助其他产品

nginx、lvs、haproxy


rabbitmq 详解-概要(一)


18、联合交换机-federationexchange-插件-2个

北京、深圳两个机房,延迟大


rabbitmq 详解-概要(一)


19、联合队列-federationqueue

北京、深圳两个机房,延迟大


rabbitmq 详解-概要(一)


20、shovel-数据备份-2个插件

在源头发送的消息直接回进入到目的地队列


rabbitmq 详解-概要(一)

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章