在特殊场景下有其对应的好处:解耦、异步、削峰。

缺点有以下几个:

系统可用性降低

系统引入的外部依赖越多,越容易挂掉。本来A系统调用BCD三个系统的接口就好了,ABCD四个系统运行正常,加一个MQ进来,万一MQ挂了,整套系统就崩溃。

一致性问题

A系统处理完了,直接返回成功了,以为这个请求就成功了。但是问题时,要是BCD三个系统哪里,BD两个系统写库成功了,结果C系统写库失败了,可能导致数据不一致。