架构师训练营第九周 - 命题作业
题目一
请简述 JVM 垃圾回收原理。
首先,需要说明的是,JVM垃圾回收主要针对的是堆内存空间中的对象。
其次,是垃圾回收的原则。主要针对堆内存空间中没有再被引用的对象。一般会采用标记清除的办法,在GC时刻到来时,对未被使用的堆内存对象进行标记,以表示可以被清理掉。
再者,是垃圾回收的时机。一般情况,不同的垃圾回收算法,执行GC的条件及范围会有不同。比如:对于CMS这种垃圾回收机制,程序执行与GC执行支持并发的,会极大地减少STW的时间;并行回收器则标记与程序运行是不能并行的,必须得等到前一个执行完成,才能去执行第二个。
还有,GC分为full GC 和 新生代GC。一般只需要回收新生代区中的对象,根据二八法则,有80%的对象会保存在新生代GC的,老年代的对象是不需要进行GC的。还有20%的对象保存在老年代中,只有在达到设定的阈值,才需要对整个对内存空间进行GC。
题目二
设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
挑战和问题:在某一时刻具有大量的请求进入导致系统响应变慢,甚至直接瘫痪。另外,维护比较麻烦。
核心的架构方案:
直接开发一个只包含三个核心的页面,比如秒杀商品列表、秒杀商品介绍以及下单。
对于静态JS资源,直接推送到CDN上;
(后面再补充)
版权声明: 本文为 InfoQ 作者【sljoai】的原创文章。
原文链接:【http://xie.infoq.cn/article/5175868a13bbe3aece8434132】。文章转载请联系作者。
评论