鉴于自己公司的架构中看到消息总线的运用,记录一下MQ的解耦作用
A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?
mq-1.png在这个场景中,A 系统跟其它系统耦合,A 系统产生一条数据,很多系统都需要从 A 系统获取数据。那么A 系统要考虑 其他四个系统如果宕机的情况。
如果使用 MQ,A 系统产生一条数据,发送到 MQ 里面去,哪个系统需要数据,就自己去 MQ 里面消费。如果新系统需要数据,直接从 MQ 里消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。这样下来,A 系统不需要去考虑要给谁发送数据,也不需要考虑人家是否调用成功、失败超时等情况。
mq-2.png公司架构
project.png
微服务治理的消息总线就是考虑一下系统中是否有一个系统或者一个模块,调用了多个系统或者模块,互相之间的调用很复杂,维护起来很麻烦。但是其实这个调用是不需要直接同步调用接口的,如果是这样的场景,可以用 MQ 给它异步化解耦。
网友评论