文章目录
- 1 MQ思想
- 1.1 相关概念:同步、异步通讯
- 1.1.1 同步通讯
- 1.1.2 异步通讯
- 1.2 MQ思想概述
- 1.2.1
1 MQ思想
1.1 相关概念:同步、异步通讯
通讯方式 | 举例 | 优势 | 劣势 |
---|---|---|---|
同步通讯 | 就像打电话,需要实时响应。 | 打电话可以立即得到响应。 | 不能跟多人同时通话。 |
异步通讯 | 就像发邮件,不需要马上回复。 | 可以同时与多个人收发邮件。 | 往往响应会有延迟。 |
1.1.1 同步通讯
Feign调用属于同步方式
优点 | 缺点 |
---|---|
时效性强 ,可以立即得到结果 | ①耦合度高 :每次加入新需求,都需修改原先代码;②性能低 :调用者需等待服务提供者响应;③资源浪费 :调用链中的服务等待响应过程中,不能释放请求占用的资源,高并发场景下会极度浪费系统资源;④级联失败 :服务提供者出现问题,所有调用方会跟着出问题,最终导致微服务故障 |
1.1.2 异步通讯
示例:下单业务中,用户支付成功需调用订单服务、物流服务最终仓库分配响应的库存并准备发货。
事件模式中:
- 支付服务是事件发布者(publisher),在支付完成后发送支付成功事件(event),事件中带上订单id。
- 订单服务和物流服务是事件订阅者(Consumer),订阅支付成功,监听到事件后完成自己业务。
- 注意:为解除事件发布者与订阅者间耦合,两者间并不是直接通信,而是需要一个中间人
(Broker)
。发布者发布事件到Broker
,不关心谁来订阅事件;订阅者从从Broker
订阅事件,不关心谁发来的消息。
1.2 MQ思想概述
MQ(MessageQueue)消息队列:存放消息的队列,也就是事件驱动架构中的Broker。