库存使用Redis的st服务器托管网ring类型进行存储
下单人使用Redis的set类型进行存储,set类型中数据不可重复
1.将优惠券数据存放到Redis中,通过Lua脚本实现对库存是否充足,用户是否下单,以及扣减库存的操作,Lua脚本时原子性的,要么成功,要么失败。
2.开启异步线程,将数据存入数据库中,并发性能提高,秒杀耗时减少
什么是阻塞队列
在数据结构中,队列遵循FIFO(先进先出)原则。在java中,Queue接口定义了定义了基本行为,由子类完成实现,常见的队列有ArrayDeque、LinkedList等,这些都是非线程安全的,在java 1.5中新增了阻塞队列,当队列满时,添加元素的线程呈阻塞状态;当队列为空时,获取元素的线程呈阻塞状态。
优化思路
①先利用Redis完成库存余量、一人一单判断,完成抢单业务
②再将下单业务放入阻塞队列,利用独立线程异步下单
基于阻塞队列的异步秒杀存在哪些问题?
●内存限制问题
●服务器托管网数据安全问题
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: Python开发实例(28)邮件客户端:创建一个简单的命令行或图形界面的邮件客户端应用。
创建一个完整的邮件客户端应用是一个复杂的项目,它需要处理邮件协议(如SMTP和IMAP)、用户界面和邮件数据。在这里,我将提供一个基本的命令行版本的邮件客户端示例,它可以发送邮件。请注意,这只是一个简单的示例,不包括接收邮件和其他高级功能。 首先,你需要安装s…