一、微服务交互模式
1.1、同步调用
特点:
- 请求服务方调用响应服务方,请求方阻塞等待响应处理结果,一直等待到超时或成功。
适用场景:
- 大规模,高并发的短小操作,不适用后端负载较高的场景。如:JDBC实现为BIO同步阻塞
1.2、异步调用
特点:
- 请求服务调用响应服务,响应服务受理成功后,请求服务继续其他操作,当响应服务操作成功后请求服务做后续处理操作
使用场景:
- 非核心链路处理,耗时长,对实时要求不高。
1.3、消息队列异步处理
特点:
- 发送者发送消息给接收者,发送者不等待接收者返回结果。实现了服务之间的解耦,一般应用于非核心链路负载较高环节。
使用场景:
- 用户支付成功后采用消息方式异步处理物流信息。
1.4、同步与异步选择
- 同步与异步选择原则:
1、尽量使用异步代替同步操作:
- 从实际业务出发,将耗时操作放在异步处理
2、能用同步解决的问题不用异步:
- 从技术架构出发没有性能问题使用同步操作