写点什么

第 9 周作业

用户头像
小胖子
关注
发布于: 2020 年 08 月 05 日

请简述 JVM 垃圾回收原理

JVM通过一种可达性算法进行垃圾对象的识别,具体过程是:从线程栈帧中的局部变量,或者方法区的静态变量触发,将这些变量引用的对象进行标记,然后看这些被标记的对象是否引用了其他对象,继续进行标记,所有被标记过的对象都是被使用的对象,而那些没有被标记的对象就是可回收的垃圾对象。目前jvm采用分代垃圾回收,新生代通过复制算法来完成垃圾收集,减少内存碎片,对象在eden区产生,当eden区满时会触发Scavenge GC,存活的对象被移动到Survivor区,Survivor区分为from和to区,每次gc存活的对象会在from区和to区之间移动,对于多次未被回收的对象会进入老年代,老年代通过标记-整理算法进行垃圾回收,当老年代被写满时触发Full GC。

设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?



设计一个秒杀系统,主要的挑战包括:1、避免对现有业务造成冲击,2、避免高并发应用对数据库造成压力,3、突然增加的网络和服务器带宽,4、避免被提前下单

核心架构思路:1、秒杀系统独立部署,避免高并发访问拖垮整个网站;2、秒杀商品页面静态化,重新设计详情页,用户请求不经过应用服务器,也不访问数据库;3、租借秒杀活动网络带宽,将商品页面缓存在CDN,新增CDN出口带宽;4、动态生成随机下单页面URL,在秒杀开始的时候才能得到,避免用户提前访问到下单页面URL

用户头像

小胖子

关注

还未添加个人签名 2018.02.04 加入

还未添加个人简介

评论

发布
暂无评论
第9周作业