我对于MQ的理解主要是:削峰、异步、解耦。
比如在一个时间段内流量比较大,而实际业务允许延迟处理,实时性不高的情况下,可以引入mq快速返回消息,实际业务延迟去消费。
或者是用户发送一个请求,这个请求除了处理必要的业务外,还需要记录请求日志。这个时候也可以引入mq去异步执行,也达到了一个主要业务与次要业务解耦的一个目的。
但是对于即时通讯来说,用户A发送一条消息,需要在处理完业务(比如敏感词过滤)后,即时传输给用户B,这个时候异步是否还有必要?除非是消息发送没有成功,才需要使用mq异步去做一些补偿吧?