如何通过消息队列MQ实现系统组件间的解耦?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2221个文字,预计阅读时间需要9分钟。
随着业务系统规模的扩大,系统架构的复杂度也会增加,系统结构更加复杂。在架构设计时,应注重对系统进行分层与解耦,以避免多个组件间性能不足、负载过高、任务处理堆栈过长以及组件故障等风险。
当业务系统的规模扩大时,也会增加系统架构的复杂度,在架构设计时对系统进行分层与解耦能够避免多个组件之间的性能不足、负载高、任务处理堆栈长及组件故障等风险。
系统进行纵向分层可以实现前后端的分离,如前端展示层、前端逻辑层、后端逻辑层、后端数据库层等,层与层之间通过API调用或函数调用的方式进行请求与响应;系统进行横向分层时按照不同业务类型等因素来划分,如新零售场景中的商品展示、订单处理、支付系统、物流系统等。
横向为技术方案、纵向为业务场景,如下图所示。
图 纵向业务场景与横向技术方案分离
@ 架构坏味道
系统组件紧耦合导致扩展难度大、组件可用性低,以及生产者和消费者互相等待会导致效率低等问题。
@ 最佳实践
将系统组件按照功能拆分,通过消息队列进行解耦,实现异步处理。
生产-消费原理
系统中的组件互相调用要避免紧耦合,背后的原理就是生产-消费原理。
本文共计2221个文字,预计阅读时间需要9分钟。
随着业务系统规模的扩大,系统架构的复杂度也会增加,系统结构更加复杂。在架构设计时,应注重对系统进行分层与解耦,以避免多个组件间性能不足、负载过高、任务处理堆栈过长以及组件故障等风险。
当业务系统的规模扩大时,也会增加系统架构的复杂度,在架构设计时对系统进行分层与解耦能够避免多个组件之间的性能不足、负载高、任务处理堆栈长及组件故障等风险。
系统进行纵向分层可以实现前后端的分离,如前端展示层、前端逻辑层、后端逻辑层、后端数据库层等,层与层之间通过API调用或函数调用的方式进行请求与响应;系统进行横向分层时按照不同业务类型等因素来划分,如新零售场景中的商品展示、订单处理、支付系统、物流系统等。
横向为技术方案、纵向为业务场景,如下图所示。
图 纵向业务场景与横向技术方案分离
@ 架构坏味道
系统组件紧耦合导致扩展难度大、组件可用性低,以及生产者和消费者互相等待会导致效率低等问题。
@ 最佳实践
将系统组件按照功能拆分,通过消息队列进行解耦,实现异步处理。
生产-消费原理
系统中的组件互相调用要避免紧耦合,背后的原理就是生产-消费原理。

