技术狂-老胡

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

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

使用场景:

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

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

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

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

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

posted on 2016-09-10 17:17  技术狂-老胡  阅读(392)  评论(0编辑  收藏  举报