Java 高并发秒杀API
官网获取资源:
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
使用mvn新建webapp项目
F:\>mvn archetype:create -DgroupId=org.seckill -DartifactId=seckill -DarchetypeA
rtifactId=maven-archetype-webapp
Spring事务的传播方式默认是加入已经开启的事务,若没有开启的事务则新开一个事务,当方法内部出现RuntimeException异常时回滚事务,注意Spring只会在方法抛出RuntimeException异常时才会回滚,try{}carch{}注意使用
使用注解控制事务方法的优点:
- 开发团队达成一致约定,明确标注事务方法的编程风格。
- 保证事务方法的执行时间尽可能短,不要穿插其他的网络操作,RPC/HTTP请求
可以剥离到事务方法外部. - 不是所有的方法都需要事务,如只有一条修改操作,只读操作不需要事务控制.
系统瓶颈优化分析
事务、锁、网络延迟
- 用到事务必然会用到锁的机制:如何降低锁持有的时间
- 网络延迟&GC(JAVA垃圾回收机制):使用存储过程来做业务逻辑的事情
- CND(加速用户获取资源): 用于减少用户访问服务器的量,静态的文件都可以放在CND上