现有逻辑实现参考的是常见的秒杀平台业务逻辑,主要运用SpringBoot+Mybatis的方式进行开发。
所参考的整体架构设计样式为:
项目设计简易UML图
实现逻辑和开发笔记都写在了个人博客里:开发笔记
多商品,多库存,多活动模型如何实现?
秒杀活动业务逻辑实现后,如何支撑亿级流量的实现,比如
首先秒杀商城这种模型的业务逻辑的问题就是:读多写少,高并发,资源冲突问题
对于可能出现的问题
容量问题测试采用JMeter等工具进行压力测试,观察是否有超卖等问题
redis之所以能解决高并发的原因是它可以直接访问内存,而以往我们用的是数据库(硬盘),提高了访问效率,解决了数据库服务器压力。
查询效率的提升要思考,问题是查询造成的吗?如果是如何优化sql语句,加索引的作用?
页面刷新问题就要防刷,限流或者验证码形式
多级缓存(redis缓存,本地缓存,静态资源cdn,动态请求,页面静态化)
构建分布式(nginx反向代理,分布式会话管理)
对于浪涌可以采用(秒杀令牌,秒杀大闸,秒杀泄洪)
在项目的修改过程中,基本上圈定了几种工具和大致版本,预计改进时会不断附加上去: