1.解耦
我们知道要完成一个项目需要封装很多的类,创建类的对象,然后类之间有许多的调用或引用的关系(也可以称为依赖),耦合性(耦合度)是对模块间关联程度的度量。模块或类之间的依赖关系,包括控制关系、调用关系、数据传递关系越多,其耦合性越强。解耦就是消除模块间的关系。
消息中间件为何能做到解耦呢?
只要能消除类与类之间或模块与模块之间的关系就能做到解耦。
未使用消息队列:
image.png
使用消息队列之后:消除了A模块直接调用B和C模块的关系因此做到了解耦。
解耦了的应用才是可扩展的。如果新增D模块想要接入系统,不需要修改模块A的调用关系,只需要模块D订阅消息队列即可。
- 异步
由于消息队列使用消息通信模式即生产者、消费者模式,这种通信方式是一种“发后即忘(fire-and-forget)”的单向方式,模块A是生产者,模块A把生产的消息发送到消息队列之后,可以继续进行其他的操作,不需要等待其他模块的结果。模块B和C是消费者,消费者从消息队列中获得消息。
网友评论