一、什么是 MQ
MQ 全程 Message Queue,即消息队列,是在消息传输中保存消息的容器,多用于分布式系统间进行通信。
分布式系统通信:
- 方式一: 远程调用
- 方式二: 借用第三方中间件
生产者(A系统) —— 中间件(MQ) —— 消费者(B系统)
MQ 的优点和缺点
优点:
- 应用解耦
提高系统的容错性和可维护性
- 异步提速
提升用户体验和系统吞吐量
(200 ms 是最好的响应时间)
- 消峰填谷
提高系统的稳定性
缺点:
- 系统可用性降低
- 系统复杂度提高
- 一致性问题
耦合度高:系统容错性降低
常见的 MQ 产品
二、RabbitMQ 基础
1. AMQP 协议 - 高级消息队列协议
RabbitMQ 基于 AMQP ,使用 Erlang 语言开发的一款 MQ 产品
2. RabbitMQ 基础架构
3. RabbitMQ 的工作模式
4. JMS - Java 消息服务
是 JavaEE 规范的一种,是 API 规范接口 (类比 JDBC),RabbitMQ 并为遵循,但是开源社区有相关实现。