架构师训练营 第九周【作业】
第一题,简述jvm垃圾回收的工作原理。
垃圾回收的作用:就是jvm来自动检测并回收内存中不再使用的java对象,以释放内存。
垃圾回收的思路:可达性分析算法。原理就是,从栈帧中,从静态静态变量出发,将对象的引用,对象引用的对象,层层逐个标记。之后,没有被标记过的,就是需要垃圾回收的对象了。
分代回收:根据对象的生命周期进行回收,这样就能使用不同的回收策略,进一步提高效率。可分为新生代(YG),老年代(OG)等
垃圾回收3种方法:清理、压缩、复制。
垃圾回收经历的阶段:串行、并行、并行CMS、G1回收器。
第二题,设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
秒杀存在的问题:
某一时刻巨量的网络访问,导致网络带宽耗尽、服务器load满载、数据库压力大瘫痪。
解决思路:
尽可能的减小服务器压力,比如使用页面静态化,将动态页面转静态。限制同时并发的线程数,限制进入系统的人数,支付流程延后等等,这些方法都可以减轻在秒杀时对核心服务器的压力。
优化服务器的设置,提供性能和响应优先的设置,主要也是为了让服务器压力更小,响应更快。
另外采取一些预备方案,比如使用其他备用的或着暂时不常用的业务服务器,暂时用于支撑秒杀的大量业务请求。
善用提示,及时返回页面“秒杀结束”。
评论