1.优点:在特殊场景下其对应的好处,详见上篇文章:为什么要使用RabbitMQ(业务场景)
- 应用异步
- 应用解耦
- 流量削峰
2.缺点:
- 系统可用性降低:系统引入外部依赖越多,越容易挂掉。本来A系统调用BCD系统好好的,加一个MQ统一连接BCD系统,万一MQ挂掉,整套系统就崩溃了。见下图所示:
- 系统复杂度提高:在整套系统中硬生生的加入MQ,对于保证没有消息重复消费的问题、对于保证消息传递顺序性问题、对于处理消息丢失的问题都比较困难
- 一致性问题:可能存在A系统处理完请求直接返回成功,但是在BCD三个系统那里,BD 两个系统写库成功了,结果C系统写库失败了,造成数据不一致问题。
来源:oschina
链接:https://my.oschina.net/u/4480939/blog/3210712
