1.消息中间件的使用场景
异步处理、业务解耦、削峰填谷
异步处理
场景:
购卡系统:购卡订单支付成功,需要更新订单状态,通知发票系统记录信息,通知财务系统记录信息。假如每一步需要100ms,共300ms。而通过发送消息到消息队列中,由发票系统和财务系统进行订阅消息处理,假如发送消息队列需要50ms,共150ms,整体缩短了接口的响应时间。
业务解耦
在后续中如果产品提出其它业务处理,比如短信通知等,都可以通过独立的服务订阅mq来进行处理,防止业务代码耦合在一起。
削峰填谷
当秒杀、促销等活动中,会导致流量激增,服务器、数据库等无法在短时间内处理大量的请求,此时可以把请求先放到mq中,然后根据服务器的处理能力进行消费,不至于直接让服务器挂掉。
2.主流消息队列
ActiveMQ和RabbitMQ平时工作中没有接触到,主要用到的就是Kafka和RocketMQ这两种,在网上找到的对比信息,供参考