Giter VIP home page Giter VIP logo

miaosha's Introduction

Springboot 秒杀设计:

一:  springboot 环境搭建
   ① 集成thymleaf + result 结果封装
   ② 集成Mybatis + Druid
   ③ 集成 Jedis + redis + 通用key封装

二: 登录设计
   ① 数据库设计
   ② 明文密码二次md5加密 + 全局异常处理器
   ③ JRS303参数检验 + 全局异常处理器
 ④分布式session
三:实现秒杀功能
   ① 秒杀数据库设计
   ② 商品列表页设计
   ③ 商品详情页设计
 ④ 订单详情页
四 : 压测jmeter
 ① jmeter压测入门
   ② 自定义变量与用户测试
   ③ 页面优化技术
五:缓存优化提高效率
   ① 页面优化+ url缓存+对象缓存
   ② 页面静态化
   ③ 静态资源
 ④ cdn优化
六:接口优化
 ① redis预减少库存访问
   ② 内存标记减少redis访问
   ③ rabbitmq安装与springboot集成
④rabbitmq异步下单
⑤ 访问Nginx水平扩展
七: 安全优化

   ① 秒杀地址隐藏
   ② 数学公式验证码
   ③ 接口防刷限流


如何应对互联网大并发 , 如何利用缓存, 如何使用异步 , 如何编写优雅的代码

一: springboot 环境搭建 (springmvc会有大量的配置)

1. 新建project -- maven -- 选择 maven-archtype-quickstart 项目
2.pom.xml文件
主要的 springboot的pom文件 項目直接导入就可以
<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
	</parent>
<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
<dependency>

类的构思讲解:
Result类:
结果类Result 类封装成一个通用类,用一个codemsg错误码来直接返回,不需要每次返回再去new一个对象,按照模块来定义错误码

Redis类:

自己封装的 jedis ,使用它自带的temple总觉得不好使 , key的定义保证不重复 生成 set--get--exist......方法自己可以添加

密码 --MD5 二次明文加密处理 设计

密码设计:  MD5(MD5(pass明文 + 固定salt) + salt) 处理

二次MD5:

用户端: PASS = MD5 (明文 + 固定 Salt)

服务端: PASS = MD5(用户输入 + 随机Salt)

Js 前端进行第一个MD5 , 后端进行第二次 , 后端第二次salt随机生成入库,然后登录时取出对比
===============
注解JSR303与 自定义注解来完成手机号和登录验证,防刷限流等功能

分布式session :
登录成功之后给用户生成一个类似于sessionid的东西 token 标识用户写到cookie当中传递给客户端,客户端在随后的访问中都在cookie中上传这个token , 然后在服务端拿到这个token来取到用户信息!!

把token uuid标识 存到 redis缓存中 ,设置过期时间,然后别的页面访问的时候依旧根据这个cookie token的值拿到用户信息。

接口防刷限流:

如果有缓存的话 这个功能实现起来就和简单,在一个用户访问接口的时候我们把访问次数写到缓存中,在加上一个有效期。
通过拦截器. 做一个注解 @AccessLimit 然后封装这个注解,可以有效的设置每次访问多少次,有效时间是否需要登录!

数据库采用mybatis:










miaosha's People

Contributors

qiurunze123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.