同步通讯:就像打电话,需要实时响应。
异步通讯:就像发邮件,不需要马上回复。
同步通信的优点:
-
时效性较强,可以立即得到结果
同步通信的缺点:
-
耦合度高
-
性能和吞吐能力下降
-
有额外的资源消耗
-
有级联失败问题
异步通信的优点:
-
吞吐量提升:无需等待订阅者处理完成,响应更快速
-
故障隔离:服务没有直接调用,不存在级联失败问题
-
调用间没有阻塞,不会造成无效的资源占用
-
耦合度极低,每个服务都可以灵活插拔,可替换
-
流量削峰:不管发布事件的流量波动多大,都由Broker接收,订阅者可以按照自己的速度去处理事件
异步通信的缺点:
-
架构复杂了,业务没有明显的流程线,不好管理
-
需要依赖于Broker的可靠、安全、性能