获取用户的信息:为了用户风控
优化
用户风控策略优化:策略缓存模型化
活动校验策略优化:引入活动发布流程,模型缓存化,紧急下线能力
订单创建过程:
验证用户,验证商品,活动,一些对象可以放在redis中。
活动缓存库存方案
库存行锁优化
减去库存需要这个sql语句
<update id="decreaseStock">
update item_stock
set stock = stock - #{amount}
where item_id = #{itemId} and stock >= #{amount}
</update>
- 扣减库存缓存化
- 活动发布同步库存进缓存
- 下单交易减缓存库存 --减去redis中的(问题:数据库记录不一致)
- 异步消息扣减数据库内库存
- 异步同步数据库
- 库存数据库最终一致性保证
异步消息队列rocketmq
高性能,高并发,分布式消息中间件
经典应用场景:分布式事务,异步解耦
rocketmq的安装
https://blog.csdn.net/jiangyu1013/article/details/81486374 ----->内存不足报错
Start name server nohup sh bin/mqnamesrv &
Start Broker nohup sh bin/mqbroker -n localhost:9876 &
Send & Receive Messages
export NAMESRV_ADDR=localhost:9876
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
创建topic ./mqadmin updateTopic -n localhost:9876 -t stock -c DefaultCluster
https://blog.csdn.net/so_geili/article/details/90142461
https://www.jianshu.com/p/5b0cde62b3fc