第 9 周 JVM 和秒杀场景
1、请简述 JVM 垃圾回收原理。
JVM 从根对象【线程栈帧中的局部变量,或方法区的静态变量】开始寻找对应的引用对象进行标记,然后通过这些对象向下继续查找、标记。最终剩余没有标记的对象就是可回收的垃圾对象。
回收主要三种方法:清理、压缩、复制。 GC时会阻塞有所进程。根据对象的存活周期,一般分为两个区域:新生代和老年代。老年代存储长周期对象,一般少量对象需要回收。新生代存储短周期对象,一般有大量对象需要回收。
2、设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
秒杀并发大,远远高于系统平时的请求并发。系统的真正的交易请求QPS一般较低于秒杀时的并发数。通过分层限流的方式,降低核心交易系统压力。
1、前端仅展示简单的访问等业务需求,满足条件后才可开始交易
2、通过队列等方式,只准入适量请求进,降低进入交易的请求数
2、简化交易流程,提高核心交易QPS
评论