一、MQ简介
1.1 项目工程弊端
1.2 MQ简介
MQ(Message Queue)消息队列,是一种用来保存消息数据的队列
队列:数据结构的一种,特征为 “先进先出”
何为消息:
服务器间的业务请求
-
原始架构:
- 服务器中的A功能需要调用B、C模块才能完成
-
微服务架构:
- 服务器A向服务器B发送要执行的操作(视为消息)
- 服务器A向服务器C发送要执行的操作(视为消息
二、MQ作用
2.1 MQ基本工作模式
应用解耦:(异步消息发送)
流量削锋:(异步消息发送)
2.1 MQ基础概念
-
1、生产者
-
2、消费者
-
3、消息服务器
-
4、命名服务器
-
5、消息
- 5.1 主题
- 5.2 标签
-
6、心跳
-
7、监听器
-
8、拉取消费、推动消费
-
9、注册
三、MQ优缺点分析
-
优点(作用):
- 应用解耦
- 异步提速
- 流量削锋
-
缺点:
- 系统可用性降低
- 系统复杂度提高
- 一致性问题
四、MQ产品介绍
1、 ActiveMQ
java语言实现,万级数据吞吐量,处理速度ms级,主从架构,成熟度高
2、RabbitMQ
erlang语言实现,万级数据吞吐量,处理速度us级,主从架构,
3、RocketMQ
java语言实现,十万级数据吞吐量,处理速度ms级,分布式架构,功能强大,扩展性强
4、kafka
scala语言实现,十万级数据吞吐量,处理速度ms级,分布式架构,功能较少,应用于大数据较多
五、总结
1、RocketMQ是阿里开源的一款非常优秀中间件产品,脱胎于阿里的另一款队列技术MetaQ,后捐赠给Apache基金会 作为一款孵化技术,仅仅经历了一年多的时间就成为Apache基金会的顶级项目。并且它现在已经在阿里内部被广泛 的应用,并且经受住了多次双十一的这种极致场景的压力(2017年的双十一,RocketMQ流转的消息量达到了万亿 级,峰值TPS达到5600万)
2、解决所有缺点