一 前情回顾
上篇文章《做了几年开发,你知道自己的系统为什么要用消息中间件吗?》,给大家讲了讲消息中间件引入系统架构的作用,主要是解决哪些问题的。
其比较常见的实践场景是:
- 复杂系统的解耦
- 复杂链路的异步调用
- 瞬时高峰的削峰处理
二 正式开始
这篇文章给大家讲讲,如果你在系统架构里引入了消息中间件之后,会有哪些缺点?
1 系统可用性降低
首先是你的系统整体可用性绝对会降低,给你举个例子,我们就拿之前的一幅图来说明。
比如说一个核心链路里面,系统A -> 系统B -> 系统C,然后系统C是通过MQ异步调用系统D的。

看起来很好,你用这个MQ异步化的手段解决了一个核心链路执行性能过差的问题。
但是你有没有考虑另外一个问题,就是万一你依赖的那个MQ中间件突然挂掉了怎么办?这个还真的不是异想天开,MQ、Redis、MySQL这些组件都有可能会挂掉。
一旦你的MQ挂了,就导致你的系统的核心业务流程中断了。本来你要是不引入MQ中间件,那其实就是一些系统之间的调用&#

本文探讨了在系统中引入消息中间件如RabbitMQ后可能导致的系统可用性降低、稳定性下降及分布式一致性问题。MQ故障可能导致业务流程中断,增加系统依赖,影响高可用性。此外,消息丢失、重复或积压可能导致数据错误和系统不稳定。分布式一致性问题也需要解决方案以确保数据一致性。面试者应对MQ优缺点有深入理解,并能提出应对系统挑战的策略。
最低0.47元/天 解锁文章
876

被折叠的 条评论
为什么被折叠?



