简介
概述
MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。
MQ的优劣势
优势
①应用解耦:提高系统容错性和可维护性
不使用MQ时,系统间的消息通信需要通过远程调用接口,这样会导致需要添加或者减少系统通信,就需要修改对应的代码,如果使用MQ,系统间的消息通信不需要调用接口,只需要将消息发送到MQ中,需要接受消息的系统自己去MQ中获取即可,从而实现了系统间的解耦。
②异步提速:提升用户体验和系统吞吐量
使用MQ可以将需要调用其他系统执行完成的操作交由其他系统自己去MQ取数据异步完成,从而节省执行时间。
③削峰填谷:提高系统稳定性
一般的MySQL,能够抗住的QPS有限,如果并发量超过了可以承受的范围,可能Mysql就挂了,导致系统崩溃。使用MQ可以将请求数据存放到MQ中,由系统逐步进行消费,保证系统有序进行。
劣势
- 系统可用性降低:系统引入的外部依赖越多,系统稳定性越差。一旦 MQ 宕机,就会对业务造成影响。
- 系统复杂度提高:以前系统间是同步的远程调用,现在是通过 MQ 进行异步调用,需要考虑消息的重复消费、丢失以及系统一致性等问题