聊聊:消息队列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊:消息队列相关的知识,希望对你有一定的参考价值。

在开发过程中,不是所有的数据都需要实时处理,也不是所有的请求都必须实时反馈结果给用户,所有的处理只要保证最终的结果是一致就OK。此时可以考虑使用消息队列来解决这些问题。

在实际开发中,我们使用消息队列进行异步处理、系统解耦、数据同步、流量控制。

使用场景:

异步处理:使用队列一个主要原因是进行异步处理:比如用户注册成功后,需要发送注册成功的邮件、新用户积分、优惠劵等等。通过异步处理,可以提升主流程响应速度,而非主流程、非重要业务可以异步处理

,这样可以任务聚合然后批量处理。

系统解耦:比如用户成功支付完成订单后,需要通知生产配货系统、发票系统、库存系统、推荐系统、搜索系统等进行业务处理;而未来需要添加/支持哪些业务还不是很清楚的,而这些业务不需要实时处理、不需要强一致性,只需要最终一致性。

数据同步:比如想把mysql变更数据同步到Redis\或者MYSQL同步到Mongodb\或者机房间数据同步

流量消峰:系统瓶颈一般在数据库,比如扣减库存、下单等;此时可以考虑使用队列变更请求暂时放入队列,通过缓存+队列暂存的方式将数据库流量消峰;

以上是关于聊聊:消息队列的主要内容,如果未能解决你的问题,请参考以下文章

聊聊:消息队列

聊聊消息队列到消息中间件

Rabbitmq业务难点

消息队列原理及ActiveMQRocketMQRabbitMQKafka区别总结

node消息队列

分布式之消息队列复习精讲