1 | /** |
订单下单流程
获取购物车信息
生成下单的商品信息(不同商品有不同信息)
判断购物车中商品是否库存充足
是否使用活动优惠或优惠券(全场通用,指定分类,指定商品) 优惠券处理算出相应金额
积分使用规则
算出最终实付金额
进行锁定库存
根据商品合计、运费、活动优惠、优惠券、积分计算应付金额
订单状态,收货人信息、使用优惠,积分,设置自动收货天数等转化为订单信息并插入数据库 主订单和订单详情表
后续相关操作:修改优惠券,积分计算,删除购物车,发送延迟消息(什么时候超时取消订单)消息队列
超时支付订单取消 或 订单取消
- 修改订单状态为交易取消
- 解除订单商品库存锁定
- 修改优惠券使用状态
- 返还使用积分
开发阶段
初期开发,
- 主体框架完善,基本增删改查,严谨地方(金额,抢购)等把控好。
- 用户量达到瓶颈,优化代码,考虑加缓存,扩容服务器,备份服务器,负载均衡等
- 单机优化,JVM优化,数据库慢查询优化,加载时间要求阈值
多线程最多的场景:web服务器本身;各种专用服务器(如游戏服务器);多线程的常见应用场景:
1、后台任务,例如:定时向大量(100w以上)的用户发送邮件;
2、异步处理,例如:发微博、记录日志等;
3、分布式计算
#####
ThreadLocal是一种多线程间并发访问变量的解决方案。与synchronized等加锁的方式不同,ThreadLocal完全不提供锁,而使用了以空间换时间的手段,为每个线程提供变量的独立副本
,以保障线程安全,因此它不是一种数据共享
的解决方案。