MQ全称 Message Queue (消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。 MQ,消息队列,存储消息的中间件
分布式系统通信两种方式:
1. 直接远程调用
2. 借助第三方完成间接通信发送方称为生产者,接收方称为消费者
优势:
1. 应用解耦
2. 异步提速
3. 削峰填谷
缺点:
1. 系统可用性降低
2. 系统复杂度提高了
3. 一致性
应用条件:
1. 生产者不需要从消费者获取反馈
2. 允许短暂的不一致性
3. 收益超过加入MQ,管理MQ这些成本
常见的MQ产品
RabbitMQ 提供了6种工作模式:
1. 简单模式
2. work queues
3. Publish/Subscribe 发布与订阅模式
4. Routing路由模式
5. Topics 主题模式 ( ' * ' 可以代替一个单词 ' # ' 可以代替零个或多个单词 ' . ' 可以代替多个单词)
6. RPC 远程调用模式
AMQP和JMS的区别
AMQP 是协议,类比HTTP4.
JMS 是API 规范接口,类比JDBC
生命周期
生产者: 创建工厂 > 设置参数 > 创建交换机 > 创建对列 > 创建任务 > 关闭链接,工厂
消费者: 创建工厂 > 设置参数 > 创建对列 > 消费任务
交换机类型
1. 广播
2. 定向发送
3. 通配符