为何使用消息队列

2020-01-06  本文已影响0人  禾叶super

1.解耦

我们知道要完成一个项目需要封装很多的类,创建类的对象,然后类之间有许多的调用或引用的关系(也可以称为依赖),耦合性(耦合度)是对模块间关联程度的度量。模块或类之间的依赖关系,包括控制关系、调用关系、数据传递关系越多,其耦合性越强。解耦就是消除模块间的关系。

消息中间件为何能做到解耦呢?
只要能消除类与类之间或模块与模块之间的关系就能做到解耦。
未使用消息队列:


image.png

使用消息队列之后:消除了A模块直接调用B和C模块的关系因此做到了解耦。
解耦了的应用才是可扩展的。如果新增D模块想要接入系统,不需要修改模块A的调用关系,只需要模块D订阅消息队列即可。

image.png
  1. 异步

由于消息队列使用消息通信模式即生产者、消费者模式,这种通信方式是一种“发后即忘(fire-and-forget)”的单向方式,模块A是生产者,模块A把生产的消息发送到消息队列之后,可以继续进行其他的操作,不需要等待其他模块的结果。模块B和C是消费者,消费者从消息队列中获得消息。

上一篇下一篇

猜你喜欢

热点阅读