写点什么

【架构师训练营 - week9 -1】作业

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

作业一:

  • 请简述 JVM 垃圾回收原理。

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



请简述 JVM 垃圾回收原理

GC分代假说

我们都知道,绝大多数对象都是朝生夕死。对于绝大多数GC算法而言都会遵循基本的分代假设。

它的结构如下所示,即





Young

此区域使用的GC算法为Mark and Copy,即没被回收的对象会被标记出来然后拷贝到幸存区。

Eden(TLAB 线程私有的分配缓存区,加快分配速度)

Survivor1

Survivor2



在年轻代,会触发Minor GC,年轻代的垃圾回收能回收掉70%--90%的内存。而幸存的对象会进入Survivor区中,并且每次Minor GC触发,不会被回收的对象会在Survivor区中交替复制,直到次数大于15次,这些对象会进入老年代。

Tenured(Old)

在老年代,使用的GC算法是Mark-Sweep-Compact,即没被回收的对象,会被标记出来,然后为了减少内存碎片,尽量的压缩成一块区域。

在老年代调用的使用的是Major GC区回收



秒杀系统



秒杀的特点就是这样时间极短瞬间用户量大

主要的挑战:

1.并发压力

2.害怕超售

3.恶意请求

设计原则:

1.单一职责。

2.URL动态化。

3.高性能的web服务器Nginx

4.静态化资源

5.进行前端限流和后端限流

6.提前预热数据,把数据存在Redis中

用户头像

早睡早起

关注

还未添加个人签名 2019.09.05 加入

还未添加个人简介

评论

发布
暂无评论
【架构师训练营 - week9 -1】作业