消息队列的使用场景
为什么要使用消息队列
- 应用解耦:多应用之间通过消息队列对消息进行处理,避免调用接口失败导致整个过程失败;将消息写入消息队列,需要消息的系统自己从消息队列中订阅,使得消息发布方不需要做任何修改
- 异步处理:将消息写入消息队列,非必要的业务逻辑通过消息队列对消息进行异步处理,加快响应速度
- 限流削峰:在秒杀系统中,避免流量过大导致应用系统挂掉,按照数据库能处理的并发量,从消息队列中慢慢拉取消息
- 消息驱动:有些系统是消息驱动的系统,可以使用消息队列来完成生产者和消费者
缺点
使用消息队列也存在缺陷,并不是十全十美的
- 系统可用性降低,如果消息队列挂了,系统的部分功能也就无法正常运转了
- 系统复杂性增加,加了消息队列之后需要考虑如一致性问题、消息重复消费问题、消息可靠性传输问题