码迷,mamicode.com
首页 > 其他好文 > 详细

消息队列的使用

时间:2018-01-11 23:51:16      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:类型   添加   创建   font   解耦   数据   处理   需要   消息队列   

1、应用场景:

适合大并发、高耗时、不需要立即返回结果的业务,例如秒杀、抢购

技术分享图片

 2、对比:

技术分享图片

3、触发机制

技术分享图片

 

 4、订单系统和配送系统案例(解耦)

4.1、程序流程

技术分享图片

技术分享图片

4.2、分析:

order.php

将用户下单添加到一张队列表中,状态为0表示未处理

 

goods.php

Linux每分钟执行此文件,将订单状态改为2,代表处理中,防止其他执行冲突,然后mysql从中每次取2条数据出来处理,完成以后把状态更新为1,表示订单处理成功

 

任务脚本——goods.sh

技术分享图片

 

创建每分钟执行的定时任务并保存日志

技术分享图片

 

日志:

技术分享图片

 

这样,订单系统出现故障的话配送系统是不会出现影响的,便实现了业务的解耦

 

5、redis的list类型实现秒杀案例

双向链表,可从头部追加元素,也可以从尾部主加元素

技术分享图片

技术分享图片

逻辑设计:

技术分享图片

技术分享图片

 

接收用户请求,将其存入redis(时间戳存微秒)

技术分享图片

技术分享图片

 使用死循环将redis的数据存到数据库中

技术分享图片

技术分享图片

技术分享图片

 

 

 

消息队列的使用

标签:类型   添加   创建   font   解耦   数据   处理   需要   消息队列   

原文地址:https://www.cnblogs.com/lamp01/p/8260147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!