消息队列的使用

Posted 郁冬

tags:

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

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的数据存到数据库中

 

 

 

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

消息队列基础

Redis(五)-特性-消息队列

如何使用NODEJS+REDIS开发一个消息队列

redis消息队列有没有

22期为什么需要消息队列?使用消息队列有什么好处?

到底啥是消息队列?Java中如何实现消息队列