消息队列RabbitMQ
文章目录
-
- 一 RabbitMQ介绍
-
- 1 消息队列
- 2 RabbitMQ
- 3 基本概念
- 4 结构图
- 5 通讯方式
- 二 RabbitMQ安装
-
- 拉取镜像
- 运行
- 登录
- 新建用户
- 新建virtual host
- 三 RabbitMQ用法
-
- 常规套路
- 1 新建springboot项目
- 2 简单队列
- 3 工作队列
- 4 发布订阅模式
- 5 路由模式
- 6 主题模式
- 四 消息的可靠性处理
-
- 1 消息的持久化
- 2 消息的确认机制
-
- 第二种是消费接收确认
- 配置:
- 3 防止消息重复消费
- 五 延迟队列
-
- 1 TTL + 死信队列
-
- TTL
-
- 通过队列设置过期时间
- 通过消息直接设置过期时间
- 死信队列
- 订单超时未支付例子
-
- 业务基本流程
- 队列配置
- 消费者
- dao层
- 业务层
- 控制层
- 2 延迟插件
-
- 安装插件
- 订单超时未支付例子
-
- 延迟队列配置
- 消费者
- 订单业务处理
- 生成订单并测试
- 附录
-
- MQ的应用场景
-
- 异步处理
- 应用解耦
- 流量削峰
一 RabbitMQ介绍
1 消息队列
消息队列属于进程间通信的一种方式,使用消息队列可以通过异步方式处理数据,借此可以提高系统性能。我们可以把消息当作存放数据的容器,消息的消费者可以从队列中获取数据,进行处理。常见的消息队列有:ActiveMQ,RabbitMQ,Kafka,RocketMQ等。
特性 | RabbitMq | RocketMQ | Kafka |
---|---|---|---|
成熟度 | 成熟 | 比较成熟 | 成熟的日志领域 |
时效性 | 微秒级 | 毫秒级 | 毫秒级 |
社区活跃度 | 高 | 高 | 高 |
单机吞吐量 | 万级,吞吐量比RocketMQ和Kafka要低了一个数量级 | 10万级,RocketMQ也是可以支撑高吞吐的一种MQ | 10万级别,这是kafka最大的优点,就是吞吐量高。一般配合大数据类的系统来进行实时数据计算、日志采集等场景 |
topic数量对吞吐量的影响 | topic可以达到 |