浏览 839 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2023-11-08
网盘地址:https://pan.baidu.com/s/1qntVVjuf8n_T6v4HZETcUw 提取码: jxab 腾讯微云下载地址:https://share.weiyun.com/g28InplR 密码:5h4fqy 给大家分享一套课程——SpringBoot3+Vue3 开发高并发秒杀抢购系统(2023新课),课程包更新。 SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的 Spring 应用(说明:SpringBoot底层是Spring)。大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术 vue3的优点 1、源码体积得到优化: (1) API减少,移除一些冷门API,如filter、inline-template等; (2)引入tree-shaking 减少打包体积; 2、源码的升级: (1)Vue3使用Proxy进行数据劫持,可以很好的规避vue2使用Object.defineProperty进行数据劫持带来的缺陷; 3、拥抱TypeScript: (1) 更好的支持Ts(typescript) 4、高级给与: (1)暴露了更底层的API和提供更先进的内置组件; 5、 组合API(Composition API): (1) 能够更好的组织逻辑,封装逻辑,复用逻辑; 秒杀系统的特点总结如下: (1)限时、限量、限价 在规定的时间内进行;秒杀活动中商品的数量有限;商品的价格会远远低于原来的价格,也就是说,在秒杀活动中,商品会以远远低于原来的价格出售。 例如,秒杀活动的时间仅限于某天上午10点到10点半,商品数量只有10万件,售完为止,而且商品的价格非常低,例如:1元购等业务场景。 限时、限量和限价可以单独存在,也可以组合存在。 (2)活动预热 需要提前配置活动;活动还未开始时,用户可以查看活动的相关信息;秒杀活动开始前,对活动进行大力宣传。 (3)持续时间短 购买的人数数量庞大;商品会迅速售完。 在系统流量呈现上,就会出现一个突刺现象,此时的并发访问量是非常高的,大部分秒杀场景下,商品会在极短的时间内售完。 导入spring-boot-starter-web:导入了web开发场景 ① web开发场景启动器导入了相关场景的所有依赖:starter-json、starter-tomcat、spring-web、spring-webmvc。 ② 每个场景启动器都引入了一个spring-boot-starter,核心场景启动器。 ③ 核心场景启动器引入了spring-boot-autoconfigure包,spring-boot-autoconfigure包里面囊括了SpringBoot官方提供的所有场景的所有配置。也就是说,所有场景要用的组件,SpringBoot在这些配置类里面都写好了。 ④ 只要spring-boot-autoconfigure这个包下的所有配置类都能生效,那么相当于SpringBoot官方写好的整合功能就生效了。 ⑤ 问题在于虽然spring-boot-autoconfigure包下有许多配置类,可以给容器提供很多组件,但SpringBoot默认是扫描不到 spring-boot-autoconfigure包下写好的配置类(说明:这些配置类给我们做了整合操作,原来需要我们自己做的一些整合工作,现在被SpringBoot官方封装到这些配置类里了)。 ⑥ SpringBoot默认只扫描主程序所在的包及其下面的子包。导了spring-boot-autoconfigure包,只是把spring-boot-autoconfigure包里面的所有配置类,引到了项目中,并没有真正生效。所以,只需要让这些配置被扫描到并且生效了,相应的功能就有了。怎么让这些配置生效?接下来我们就要看第2步,分析主程序了 秒杀系统的技术特点: (1)瞬时并发量非常高 大量用户会在同一时间抢购商品;瞬间并发峰值非常高。 (2)读多写少 系统中商品页的访问量巨大;商品的可购买数量非常少;库存的查询访问数量远远大于商品的购买数量。 在商品页中往往会加入一些限流措施,例如早期的秒杀系统商品页会加入验证码来平滑前端对系统的访问流量,近期的秒杀系统商品详情页会在用户打开页面时,提示用户登录系统。这都是对系统的访问进行限流的一些措施。 (3)流程简单 秒杀系统的业务流程一般比较简单;总体上来说,秒杀系统的业务流程可以概括为:下单减库存。 秒杀三阶段 通常,从秒杀开始到结束,往往会经历三个阶段: 准备阶段:这个阶段也叫作系统预热阶段,此时会提前预热秒杀系统的业务数据,往往这个时候,用户会不断刷新秒杀页面,来查看秒杀活动是否已经开始。在一定程度上,通过用户不断刷新页面的操作,可以将一些数据存储到Redis中进行预热。 秒杀阶段:这个阶段主要是秒杀活动的过程,会产生瞬时的高并发流量,对系统资源会造成巨大的冲击,所以,在秒杀阶段一定要做好系统防护。 结算阶段: 完成秒杀后的数据处理工作,比如数据的一致性问题处理,异常情况处理,商品的回仓处理等。 针对这种短时间内大流量的系统来说,就不太适合使用系统扩容了,因为即使系统扩容了,也就是在很短的时间内会使用到扩容后的系统,大部分时间内,系统无需扩容即可正常访问。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |