同步
优点
- 时效性较强
缺点
- 耦合度高
- 性能和吞吐量低
- 等待过程中导致cpu等资源浪费
- 级联失败
异步
优点:
- 耦合性低:新增微服务不用去改动支付服务里的代码
- 吞吐量大:支付服务不用刻意等待其他微服务的处理结果,全部交给Broker来代理
- 故障隔离:其他微服务的停止不会直接影响到支付服务
- 流量削峰:高并发请求会先缓存在Broker中,微服务可以根据自身能力从Broker中取
缺点:
- 依赖于Broker的高可靠性、高吞吐量、安全性
- 架构复杂,业务流水线不好跟踪
如何选择
业务前后关联性较强,选择同步;若对吞吐量及并发要求较高,则选择异步