为了账号安全,请及时绑定邮箱和手机立即绑定
  • 瓶颈分析. 

    查看全部
  • java控制事务行为分析


    查看全部
  • 视频只是起到展示作用,独立做一遍。

    查看全部
    0 采集 收起 来源:8-课程总结

    2019-09-08

  • 【并发优化】

    对于java,除了延迟,还要考虑GC的影响。

    GC理解:https://blog.csdn.net/qq_36314960/article/details/79923581

    查看全部
    0 采集 收起 来源:8-课程总结

    2019-09-08

  • 【WEB层技术回顾】

    restful接口运用:用来描述资源,通过不同的提交方式(GET/POST)来达到描述行为的目的;写一般通过post,读一般通过get。

    SpringMVC使用技巧:如何去配置,其参数的映射,以及如何打包成json返回给浏览器。

    前端交互分析过程:如何与浏览器交互来完成产品的需求,实现一个优雅的前端交互,对于产品的性能也是非常有帮助的。

    Bootstrap和JS的使用:Bootstrap是一个非常优雅的,包含JS和CSS的组件库;JS主要使用了JQuery和一些插件;JS可以按模块和面向对象的思路来书写代码


    查看全部
    0 采集 收起 来源:8-课程总结

    2019-09-08

  • 【业务层技术回顾】

    业务接口设计和封装:

    站在使用者角度设计接口,而不是考虑怎么去实现这个接口,达到使用接口干净直接的目的;(举例?)

    SpringIOC配置技巧:

    1. 声明式事务:XML配置,

    2. DAOservice/controller:注解,

    3. 包扫描。

    Spring声明式事务使用和理解:应该让方法快速完成,理解声明式事务什么时候该回滚,什么时候该提交

    SpringIOC配置技巧: 1、对于第三方类库,可以通过xml文件进行配置 2、对于自己开发的类,可以通过注解的方式完成IOC

    查看全部
    0 采集 收起 来源:8-课程总结

    2019-09-08

  • 【数据层技术回顾】

    mybatis中设计dao接口,每个dao方法对应一条sql语句

    上层service调用组合这些dao方法完成业务逻辑


    查看全部
    0 采集 收起 来源:8-课程总结

    2019-09-08

  • 认识到各个角色承担的主要职责

    查看全部
    0 采集 收起 来源:系统部署架构

    2019-09-08

  • 【参与的角色】

    数据库管理员(Database Administrator,简称DBA)

    查看全部
    0 采集 收起 来源:系统部署架构

    2019-09-08

  • 【典型的部署架构】

    1. Nginx做负载均衡 

    2. 分库分表 在秒杀系统中,一般通过关键的秒杀商品id取模进行分库分表,以512为一张表,1024为一张表  分库分表一般采用开源架构,如alibaba tddl 

    3. 统计分析 一般使用hadoop等架构进行分析

    补充:

    • 一部分流量已经被cdn缓存锁拦截 不过秒杀的操作,秒杀的地址获取这样的请求不方便放入cdn中,所以访问到我们的服务器 我们的服务器会通过我们的dns查找到我们的地址 一般找到的是nginx地址,nginx一般部署到不同的机房,比如电信,移动,联通 这样的话智能的dns会根据用户的请求ip地址来智能的dns解析来请求最近的Nginx服务器 nginx还会给我们的服务器做负载均衡

    • 分库分表:阿里巴巴TDDL

    • 统计分析: EL


    查看全部
    0 采集 收起 来源:系统部署架构

    2019-09-08

  • CDN:Content Delivery Network,即内容分发网络。放置一些静态化资源,或者可以将动态数据分离,比如秒杀详情页,做成HTML放在cdn上,动态数据可以通过ajax请求后台获取。一些js依赖直接用公网的CDN,自己开发的一些页面也做静态化处理推送到CDN。用户在CDN获取到的数据不需要再访问我们的服务器,动静态分离可以降低服务器请求量。

    WebServer一般不直接对外访问,之前都会放置Nginx,Nginx是一个集群化的,部署在多个服务器上,用来做我们的Http服务器,响应客户请求。同时他还会为后端的Tomcat,Jetty这些servlet容器来做反向代理,以达到负载均衡的效果。

    Redis:做服务器端的缓存,利用Redis提供的API来达到热点数据的快速存取的过程。加速后台获取数据,减少数据库的请求量。

    MySQL:借助MySQL的事务来达到秒杀的数据的一致性和完整性。

    查看全部
    0 采集 收起 来源:系统部署架构

    2019-09-08

  • 11111

    查看全部
    0 采集 收起 来源:系统部署架构

    2019-09-08

  • Mark 调试代码

    查看全部
  • 更新库存的是热点操作,会出现行级锁,而插入购买记录的行为没有行级锁。可以先插入购买明细,可以避免因重复秒杀带来的不必要的更新库存操作,减少不必要的行级锁的占用。然后再去更新库存。代码中,根据热点商品竞争的结果,来决定下一步是rollback还是commit,降低了网络延迟和GC影响一半的时间

    插入操作放在前面,插入操作就是把秒杀单,用户id,电话组成一个组件,这个组件冲突的概率并不是很高,因为秒杀单在前头,还有用户的电话,组成一个唯一键,这个时候的网络延迟和GC是可以并行的,这个时候再去拿update减库存的rowLocl行级锁

    rowLock:  行级锁,锁的粒度最小,并发度最高,加锁慢

    最终目的:降低MySQL roollock的持有时间

    查看全部
  • 回顾事务执行

    秒杀操作通过mysql的事务来完成。


    查看全部

举报

0/150
提交
取消
课程须知
《Java高并发秒杀API》是系列课程,共四门课,分别为业务分析和DAO层,Service层,Web层和高并发优化。本门课程是第二门课程,学习前需要了解如下知识: 1、精通JavaWeb基础 2、熟悉SpringMVC、Spring和MyBatis框架 3、了解事务和存储过程的概念
老师告诉你能学到什么?
1、掌握秒杀业务 2、能够进行SpringMVC+Spring+MyBatis的整合开发 3、能够对秒杀业务的瓶颈有所了解 4、能够实现对秒杀业务的优化

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!