秒杀优化

一、本文内容

进行秒杀优化,用于增加吞吐量

二、优化内容

  1. 页面缓存与页面静态化
    页面静态化就是将页面放在缓存中,当秒杀进行时,页面便不用重复下载,只需要下载页面中静态的数据即可。
    <1> 页面缓存首先要取缓存,先从缓存中取,取不到在手动渲染,取到就返回html页面
       String html = redisService.get(GoodsKey.getGoodsList, "", String.class);
        if (!StringUtils.isEmpty(html)){
            return html;
        }

<2>手动渲染(将html页面放入缓存之中)

   WebContext ctx =new WebContext(request,response,
                request.getServletContext(),request.getLocale(),model.asMap());
        html = thymeleafViewResolver.getTemplateEngine().process("product_list", ctx);
        if (!StringUtils.isEmpty(html)){
            redisService.set(GoodsKey.getGoodsList, "", html);
        }
  1. 对象缓存
    先取缓存,取不到在将对象id作为key对象信息作为value存入reids缓存中,这个可以永久保存,但进行对象信息修改时,需要先修改数据库,再将缓存删除,防止数据库信息与缓存不一致。
    public MiaoshaUser getById(long id) {
        //取缓存
        MiaoshaUser miaoshaUser = redisService.get(MiaoshaUserKey.getById, ""+id, MiaoshaUser.class);
        if (miaoshaUser != null){
            return miaoshaUser;
        }
        //取数据库
        miaoshaUser = miaoshaUserDao.getById(id);
        if (miaoshaUser != null){
            redisService.set(MiaoshaUserKey.getById, ""+id, miaoshaUser);
        }
        return miaoshaUser;
  1. 商品详情静态化和秒杀静态化
    商品详情静态化就是将网页中需要的数据都保存到一个vo类中,利用这个vo类向页面上传值,并且利用这个类进行对象缓存。
    GoodsDetailVo goodsDetailVo = new GoodsDetailVo();
        goodsDetailVo.setGoodsVo(goods);
        goodsDetailVo.setMiaoshaUser(user);
        goodsDetailVo.setMiaoshaStatus(miaoshaStatus);
        goodsDetailVo.setRemainSeconds(remainSeconds);
        return Result.success(goodsDetailVo);

由于页面保存到服务端,所以需要在application.properties中配置相关的信息。

spring.resources.add-mappings=true
spring.resources.cache.period=3600
spring.resources.chain.cache=true
spring.resources.chain.enabled=true
spring.resources.chain.compressed=true
spring.resources.chain.html-application-cache=true
spring.resources.static-locations=classpath:/static/
  1. 静态资源优化
    1.js/css压缩,减少流量
    2.多个js/css组合,减少连接数
    3.使用cdn,将网站缓存在多个节点,让用户使用离他最近或者网路连接最好的节点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值