![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SSM秒杀系统
编程初学者z
这个作者很懒,什么都没留下…
展开
-
SpringBoot秒杀项目(项目总结)
秒杀系统的项目主要是为了应对高并发的场景,所以在项目主要包含有几个关键的模块:商品模块、用户登录模块、秒杀模块、秒杀安全优化等等。1. 登录模块主要包括了登录密码的加密和分布式session1.1 登陆密码加密用户登录的时候,登录信息由前端传递到后端是通过http协议进行传输的,由于http协议是明文传输的。所有的登录信息都在其body里面,所以将用户的登录密码进行明文传输安全性较低。所以在传输之前,我们在前端需要对password进行加密,通过MD5进行对称加密。整个加密过程分为两次MD5加密原创 2020-12-14 15:42:48 · 3666 阅读 · 5 评论 -
SpringBoot秒杀项目五(秒杀安全优化)
1.优化思路(1)秒杀接口地址隐藏。防止有人恶意秒杀(2)数学公式验证码。也能防止恶意秒杀。并且能够减轻秒杀系统的瞬时流量,减轻并发量。比如:12306的购票需要输入验证码。这样就能将原先瞬间的并发量削减到10s之内。(3)接口限流防刷。限制一个用户1分钟之内只能访问某个接口10次2.秒杀接口地址隐藏思路:秒杀开始之前,先去请求接口获取秒杀地址接口改造,带上PathVariable参数添加生成地址的接口秒杀收到请求,先验证PathVariable(1)在前端点击秒杀抢购的时候,不直接跳原创 2020-12-14 15:42:37 · 408 阅读 · 0 评论 -
SpringBoot秒杀项目四(秒杀接口优化)
秒杀接口优化1.秒杀接口优化思路秒杀接口优化的核心就是减少数据库访问。系统初始化将商品库存数量加载到redis收到请求redis预减库存,库存不足直接返回,否则直接进入3.好处:如果库存只有10,10个请求以后的所有请求直接返回秒杀失败,直接挡住了很多请求,不会继续往下执行,大大提高了效率。请求入队rabbitMQ,立即返回排队中比如:12306购票的时候,下订单就会返回正在排队中,如果抢购成功就会返回结果。请求出队,生成订单,减少库存客服端轮询是否秒杀成功2.r原创 2020-12-14 15:42:27 · 667 阅读 · 0 评论 -
SpringBoot秒杀项目三(页面优化)
1.页面缓存为了防止服务器瞬间访问量较大,我们将页面缓存至redis中,redis缓存的过期时间设置为60s,比较短。页面缓存时间不能太长,因为如果太长的话,页面数据发生 变化缓存是不会及时更新的。 @RequestMapping(value="/to_list", produces="text/html") @ResponseBody public String list(HttpServletRequest request, HttpServletResponse respon原创 2020-12-14 15:42:19 · 225 阅读 · 0 评论 -
SpringBoot秒杀项目二(秒杀功能及测试)
1.数据库设计商品表CREATE TABLE `goods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '商品ID', `goods_name` varchar(16) DEFAULT NULL COMMENT '商品名称', `goods_title` varchar(64) DEFAULT NULL COMMENT '商品标题', `goods_img` varchar(64) DEFAULT NULL COMMENT '商品原创 2020-12-14 15:42:05 · 1677 阅读 · 0 评论 -
SpringBoot秒杀项目一(登录功能)
1.数据库设计CREATE TABLE `miaosha_user` ( `id` bigint(20) NOT NULL COMMENT '用户ID,手机号码', `nickname` varchar(255) NOT NULL, `password` varchar(32) DEFAULT NULL COMMENT 'MD5(MD5(pass明文+固定salt) salt)', `salt` varchar(10) DEFAULT NULL, `head` varchar(128)原创 2020-12-14 15:41:49 · 323 阅读 · 0 评论 -
SSM秒杀系统(十二)异步订单超时处理
对于用户提交订单后,没有进行支付,我们需要设置一个超时处理方法,比如:超过30分钟,订单自动取消。采用定时任务来实现实现方式:我们采用定时任务实现,每秒钟执行一次,判断是否超时,超时则将订单自动取消,也就是将订单的状态设置为21.超时任务controller层@Controllerpublic class CheckordrertimeoutTask { @Autowired MsoderService msoderService; public void Checktimeoutor原创 2020-05-11 17:30:22 · 864 阅读 · 1 评论 -
SSM秒杀系统(十一)消息队列RabbitMQ实现异步订单
SSM秒杀系统(十一)消息队列RabbitMQ实现异步订单十五、消息队列RabbitMQ15.1 rabbitMQ的安装与使用15.2 消息队列使用1.订单模块优化--redis缓存2.订单和支付异步处理2.1 将订单信息和支付信息放到消息队列2.2 MS_YF_ORDER项目中处理消息队列,将数据存放到数据库RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的原创 2020-05-10 17:18:34 · 3084 阅读 · 0 评论 -
SSM秒杀系统(十)jQuery实现倒计时
SSM秒杀系统(十)jQuery实现倒计时十四、倒计时模块的实现十四、倒计时模块的实现在我们查看商品详情的时候,此时我们需要用一个倒计时来显示秒杀商品距离秒杀开始时间的倒计时。实现步骤:写一个js函数remaintime,计算出当前时间和开始时间之间的时间差,并通过变量remainnoties显示在商品页面开头位置$("#remainnoties").html("相差 "+days+...原创 2020-05-08 16:46:14 · 451 阅读 · 0 评论 -
SSM秒杀系统(九)商品详情页添加redis缓存
该部分引入了redis缓存。为什么要使用redis缓存,我们不是已经添加了ehcache缓存吗?首先redis缓存相比于ehcache具有一定优势:集群环境下,那么每台服务器的ehcache是不同步的,这样会出问题的,ehcache只适合单机环境redis是设置单独的缓存服务器,所有集群服务器统一访问redis,不会出现缓存不同步的情况,也就是redis缓存是共享的并且redis的效率...原创 2020-05-07 21:03:48 · 775 阅读 · 0 评论 -
SSM秒杀系统(八)
SSM秒杀系统(八)十二、ehcache缓存该部分引入了cache缓存,来提升系统性能,提高相应速度。十二、ehcache缓存缓存(Cache)是一块为提升系统性能而开辟出来的内存空间。其主要作用是暂存数据处理结果,并提供下次访问使用。在很多场合,数据的处理或者数据获取可能非常费时,当对这个数据的请求量很大时,频繁的数据处理会消耗大量资源。缓存的作用就是将这些来之不易的数据存储起来,当再次请...原创 2020-05-07 20:56:53 · 132 阅读 · 0 评论 -
SSM秒杀系统(七)
SSM秒杀系统(七)十一、频道列表静态化1.频道列表静态化2.分布式定时任务该部分对秒杀主页进行了优化,秒杀活动开始前,其实就有很多用户访问该页面了。如果这个页面的一些资源,比如 CSS、JS、图片、商品详情等,都访问后端服务器提供,甚至操作数据库,服务肯定会出现不可用的情况。所以一般我们会把这个页面整体进行静态化,降低服务器的压力十一、频道列表静态化1.频道列表静态化由于我们每次访问频道...原创 2020-05-07 20:54:11 · 249 阅读 · 0 评论 -
SSM秒杀系统(六)
SSM秒杀系统(六)九、项目拆分十、面向服务的分布式框架dubbo10.2 Dubbo在项目中的使用方法10.3 项目启动问题该部分引入dubbo框架,对项目进行重构九、项目拆分十、面向服务的分布式框架dubbo1.pom中引入dubbo-2.8.4的jar包2.linux服务器中安装zookeeper-3.1.6,并进行配置:zookeeper存放的位置为 /usr/local/z...原创 2020-05-07 20:50:12 · 151 阅读 · 0 评论 -
SSM秒杀系统(一)
SSM秒杀系统(一)一、项目需求分析二、项目搭建三、数据库设计3.1 商品表3.2 订单表3.3 用户表3.4 商家用户表3.5 商品详情表一、项目需求分析秒杀的商品通常有两种限制:库存限制和时间限制需求分析:商家:商家申请入驻秒杀商家(创建秒杀店铺):注册商家账号店铺创建秒杀商品(添加商品):开始时间,结束时间,秒杀价格,原价格,库存等管理员:3. 秒杀商品审核用户:4....原创 2020-04-28 16:48:30 · 456 阅读 · 0 评论