同步调用:
以某购票平台为例:
同步调用的优势:
时效性强,得到返回的消息才继续
会产生几个问题:
1.扩展性能差
2.性能下降
3.级联失败
异步调用:
异步调用方式其实就是基于消息通知的方式,一般包含三个角色:
- 消息发送者:投递消息的人,就是原来的调用方
- 消息代理:管理、暂存、转发消息,你可以把它理解成微信服务器。
- 消息接收者:接收和处理消息的人,就是原来的服务提供方。
支付服务不再同步调用业务关联度低的服务,而是发送消息通知到Broker。
异调用的优势:
- 耦合度低,拓展性强
- 异步调用,无需等待,性能好
- 故障隔离,下游服务故障不影响上游业务
- 缓存消息,流量削峰填谷
异步调用的问题:
- 不能立即得到调用结果,时效性差
- 不确定下游业务执行是否成功
- 业务安全依赖于Broker的可靠性
削峰填谷:
MQ技术选型:
MQ(MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是异步调用中的Broker。
图片资源来自黑马课程,仅作为学习,如有侵权请联系,必删。