# 消息队列有什么优点和缺点
# 优点
- 解耦
- 异步
- 削峰
具体的解释可以在 为什么要用消息队列中查看
# 缺点
- 可用性降低

在加上 MQ 后系统就会由原来的 3 个变成 4 个,一旦 MQ 挂了整个系统就会崩溃(这种问题的话一般都是 采用集群的方式处理)
复杂度提高
对业务来说,原来只是 RPC 接口的调用。在引入 MQ 后 B 就要作为 MQ 的生产者,C 就要作为 MQ 的消费者,也就是需要去写生产端和一个消费端,这样整个系统的复杂度提高。同时还会遇到一些另外的问题,MQ 如果发生消息重复怎么办、如果发生消息的丢失怎么办以及保证消息的顺序的问题。都会导致我们的复杂度提升。
一致性问题
![image-20230518151048262]()
可能 B 系统有自己的数据库,C 系统也有自己的数据库,在使用 RPC 调用的时候调用 B、C,两个库都可以写成功。现在可能会发生消息的丢失、消息的重复;所以引入消息队列的话可能会导致一致性的问题;
# 总结
在使用消息队列的时候,一方面要接受他的优点,另一方面就是要有解决缺点的能力

