这是一篇学习笔记,大佬请多指教
对于一个普通公司的普通的商城项目,能在1s之内产生1W个请求已经很不错了,实测图如下
这还不是极限,极限估计能到1.5W以上,不过鉴于表结构不够复杂,综合1w应该是没问题的
整体架构为: (订单服务、商品服务、秒杀服务)+RabitMQ通信+Redis缓存(预热库存)+异步操作数据库
数据库结构如下(极致简化版)
整体流程为:商品上架=>秒杀商品上架(需商品表存在的商品且不可二次上架,预热秒杀商品至缓存)=>用户下单(缓存用户id,保存不可重复下单,锁定库存)=>rebbitmq通知订单模块生成订单(使用延迟队列取消超时未支付订单,通知秒杀模块扣减库存或者取消锁定回退库存-取决于是否支付)
整体业务逻辑还是相对复杂的,参考下面的rabbitmq结构图
总结来说,自己从0到1开发一个类似的高并发Demo对自身的帮助还是挺大的,能帮助自己提高对多线程并发的认识、并发安全的控制以及帮助思考如何进行精细的异步处理操作,以及异步操作的并发安全控制,这对提升自己对并发防护、微服务之间通信以及业务划分的理解是非常有益的,可以加深印象,获得一些经验。