- 同步:打电话,实时响应
- 异步;发短信,不需要马上回复
高吞吐量场景,异步比同步好,举个例子:一个人不能同时给多个人打电话,但是一个人可以同时给多个人发短信。
同步缺点
- 如果被调用方不满足调用方的吞吐,因为性能的不足拖累了调用方
- 调用方一直等待被调用方完成,如果被调用方也调用了其他的被调用方,一层接着一层,延长等待时间,极度消耗资源。
- 同步只能一对一
- 被调用方出问题,会导致连锁反应
异步优点
- 增加系统吞吐量
- 服务间彻底解耦
- 调用方和被调用方可以根据自己的速率灵活调整
异步通讯三种方式
- 请求响应
- 订阅:发送方不关心订阅的结果,给我个ACK(确认消息)就行。接收方订阅发送方
- broker方式
broker好处
- 服务之间没有依赖,平等关系
- 每个环节高度隔离
- 通过事件关联
- 服务增加切面容易
- 按照服务自己的速度处理吞吐
为什么选择异步方式
- 方便服务解耦
- 解耦可以对服务隔离性好
- 获得更大吞吐量
- 把抖动的吞吐量变得均衡,这是削峰
- 服务相对独立不受干扰