您的位置:首页 > 其它

高并发秒杀——开篇

2016-07-22 00:31 274 查看
基于SpringMVC+Spring+MyBatis实现高并发秒杀API(API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。)

1、SpringMVC+Spring+MyBatis使用与整合

使用的优点:

1)框架易于使用和轻量级(轻量级重量级某种程度上是以启动程序需要的资源来决定。比如,EJB启动的时候,需要消耗大量的资源,内存,CPU等,所以是重量级。而Spring则不,所以是轻量级框架。专业点说就是量级主要是看对容器的依赖性所决定的,依赖性越小,越轻量.)

2)低代码侵入性

3)成熟的社区和用户群

秒杀业务场景具有典型“事务”特性

秒杀/红包类需求越来越常见

面试常问问题

2、秒杀类系统需求理解和实现

3、常用技术解决高并发问题

用到的技术


MySQL:

1、表设计

2、SQL技巧

3、事务和行级锁

MyBatis:

1、DAO层设计与开发

2、MyBatis合理使用

3、Spring+MyBatis整合

Spring:

1、Spring IOC整合Service

2、声明式事务运用

SpringMVC:

1、Restful接口设计和使用

2、框架运作流程

3、Controller开发技巧

前端:

1、交互设计

2、Bootstrap

3、jQuery

高并发:

1、高并发点和高并发分析

2、优化思路并实现

基于maven创建项目:

创建之前的说明:

1、从零开始创建

2、从官网获取相关配置(文档更全面权威、避免过时或错误)

Logback: http://logback.qos.ch/manual/configuration.html

Spring: http://docs.spring.io/spring/docs/

Mybatis: http://mybatis.github.io/mybatis-3/zh/index.html

3、使用maven创建项目

Maven命令创建web骨架项目

mvn archetype:creat -DgroupId=org.seckill -DartifactId=seckill (这两个Id标注项目的坐标)

-DarchetypeArtifactId=maven-archetype-webapp(使用web原型创建项目)

秒杀系统业务流程:



秒杀业务的核心——>库存的处理

用户针对库存业务的分析:



什么是购买行为?

记录秒杀成功信息:

1、谁购买成功

2、成功的时间/有效期

3、付款/发货信息

关于数据落地

Mysql vs Nosql

难点问题竞争:



Mysql实现秒杀难点分析

事务 + 行级锁

事务:

Start Transaction

Update 库存数量

Insert 购买明细

Commit

行级锁:



秒杀的难点是如何高效的处理竞争?



天猫的秒杀系统大概是这样

秒杀功能:

秒杀接口暴露

执行秒杀

相关查询

代码开发阶段

DAO设计编码

Service设计编码

Web设计编码

数据库编码

(SQL文件)

基于MyBatis实现DAO



MyBatis特点:参数 + SQL = Entity/List

SQL写在:

1、XML提供SQL(选)

2、注释提供SQL

DAO接口:

1、Mapper自动实现DAO接口(选)

2、API编程方式实现DAO接口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: