提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
同步调用问题:发起请求后,要一直等待后续流程走完,才能执行下一个,效率慢,性能差,资源浪费
级联失败:如果执行过程中,其中一个出现问题,后续都无法走下去,
耦合度高:每次添加新需要,都需要改原来的代码
服务解耦:当不需要某个模块时,直接通过broker取消对功能的订阅,后续就不会有该模块了,同理添加需求的时候也不需要改动支付模块
使用broker,当进行到支付成功时,直接返回给用户消息,不需要等待后续程序的执行
同步调用耗时:500ms(所有时间之和)
异步调用耗时:60ms(支付和发布支付成功事件)
使用broker,当进行到支付成功时,直接返回给用户消息,不需要等待后续程序的执行
**同时有大量的请求时,broker会将请求拦截下来,后面程序能处理多少,就放多少过去,其他都拦住,就不会出现流量突然很大的情况 **
mq,中文消息队列,字面来看就是存放消息的队列,也就是时间驱动架构中的broker
大多数情况下,都是使用同步调用,如果对吞吐量等有要求的话,才能使用异步
四种mq都各有优劣,具体使用哪种看业务需求