1.为什么要使用消息队列?
常见的使用场景有很多,但比较核心的有三个:解耦、异步、削峰
解耦:
- 不使用MQ的情况下:
例如,A系统发送个数据到BCD三个系统,接口调用发送,那如果E系统也要这个数据呢?那如果C系统现在不需要了呢?现在A系统又要发送第二种数据了呢?A系统负责人濒临崩溃中。。。A系统还要时时刻刻考虑BCDE四个系统如果挂了咋办?我要不要重发?我要不要把消息存起来?此时系统就严重耦合起来,产生一系列麻烦问题。
- 使用MQ的情况下:
例如,系统A产生一条数据,发送到MQ里面去,那个系统需要数据就自己去MQ里面消费,如果新系统需要数据自己直接从MQ里面消费即可,系统A根本不需要去考虑给谁发送数据,不需要维护这个代码,不需要考虑人家是否调用成功,