JAVA秒杀系统学习

  • 框架
    •  
    • Thymeleaf:页面模板
    • MyBatis访问数据库
    • JSR303服务端验证框架,参数校验
    • SpringBoot微服务框架
    • Druid 数据库链接池
  • JSR303
  • 分布式session
    • token: session ID,标识用户
    • 集群里同步session
    • 用户信息写到redis中,和token绑定
  • Redis缓存+静态化分离
    • 页面缓存+URL缓存+对象缓存
      • 页面缓存:将页面缓存到redis中
      • URL缓存:带参数的页面缓存
      • 对象缓存
    • 页面静态化,前后端分离,存HTML
      • 利用浏览器的缓存静态数据
      • 动态内容从服务端接口中获取
    • 解决卖超
    • 加唯一索引,防止重复购买
    • 静态资源优化
  • RabbitMQ+接口优化
    • 接口优化
      • Redis预减库存减少数据库访问
      • 内存标记减少Redis访问
      • 请求先入队缓冲,异步下单
      • Nginx水平扩展
      • 数据库分库分表中间件:mycat
    • 解决超卖问题
      • 数据库加唯一索引,防止用户重复购买
      • SQL加库存数量判断,防止变为负数
      • RabbitMQ四种交换机模式(发到交换机,再由交换机到MQ)
        • Direct模式
        • Topic模式
        • Fanout模式 广播
        • Header模式
    • nginx横向扩展
      • 配置反向代理,给服务器集群,weight是表示权重(负载均衡)
  • 总结
    • Spring Boot搭建项目环境
    • 集成Thymeleaf作为页面模板,Result结果封装
    • 集成Mybatis+Druid作为数据访问层的ORM框架
    • 集成Jedis+Redis
    • 分布式Session
    • JMeter进行压测
    • 页面缓存,页面静态化
    • Redis预减库存、内存标记、RabbitMQ异步下单、Nginx水平扩展
    • 秒杀接口地址隐藏、数学公式验证码、接口防刷
posted @ 2019-01-05 15:32  李怕怕  阅读(195)  评论(0编辑  收藏  举报