写点什么

架构师训练营——第 9 周作业

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

请简述 JVM 垃圾回收原理

JVM 垃圾回收就是在 JVM 堆中的已经不在被使用的对象清理掉,释放内存资源;

JVM 通过一种可达性分析算法进行垃圾对象的识别,对被引用的对象进行标记,那些没有标记的对象就是可回收的垃圾对象了。

JVM 回收垃圾对象占用的资源主要有 3 种方法:1.清理 2.压缩 3.复制

JVM 在具体垃圾回收时会进行分代垃圾回收。具体实现:JVM 将堆空间分成新生代和老年代两个区,新建的对象都存放在新生代,当新生代空间不足时,只对新生代进行垃圾回收,这样需要处理的内存空间就比较小,垃圾回收速度就比较快。

采用串行、并行、并发或 G1 等算法对内存进行回收,在回收过程中会产生 STW(Stop The World)现象。


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

秒杀系统一般会有如下问题

  • 高并发:短时间高并发,用户不断刷新页面产生重复的请求链接

  • 秒杀地址的隐藏:避免非法用户提前获取地址

  • 带宽限制:网页中大量图片占用大量的带宽资源

  • 高并发导致数据库瘫痪

核心的架构方案

  • 浏览器静态资源缓存。

  • CDN 缓存静态资源。

  • 秒杀列表、秒杀详情页面静态化。

  • nginx 限流:进入秒杀详情页面和订单提交页面进行限流,只有少部分人能进去,其它人都直接跳转到秒杀结束页面


用户头像

jiangnanage

关注

还未添加个人签名 2019.04.11 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营——第9周作业