架构入门感悟之九

用户头像
莫问
关注
发布于: 2020 年 12 月 20 日

Questions

1、请简述 JVM 垃圾回收原理。

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

JVM通过一种可达性分析算法识别垃圾对象。具体过程如下:

从线程栈中的局部变量、或者方法区的静态变量出发,将这些变量引用的对象进行标记,然后看这些被标记的变量是否引用其他对象,继续进行标记,所有被标记过的对象都是被使用的对象,而那些没有被标记过的对象就是可以被回收的对象。完成标记后,JVM就会对垃圾对象占用的内存进行回收。

回收垃圾对象的内存主要有三种:清理、压缩、复制。



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

挑战包括两个维度,一个是项目交付方面,另一个是技术实现方面。

项目交付主要体现在:交付时间周期短。

技术实现方面:

1)当前系统架构技术应对高并发存在困难,如何解决该场景下的类“DDOS”攻击,秒杀大量请求图片,存在“网络带宽”耗尽风险;

2)需要提供解决方案有效应对“秒杀器”(一种是秒杀开始前不断刷新页面,直至秒杀开始,抢单;另一种是跳过秒杀页面,直接进入下单页面下单)。

核心架构方案:

1)根据业务需求,计算各类服务器台数、每个商品图片大小上限、预估业务并发模型、求助周边领域协调CDN;

2)考虑时间短,在既有系统中进行扩展,无法按时、保质交付。考虑新建一个“秒杀系统”,并借助已有系统的既有功能交付新业务。

3)新系统需要与旧系统进行隔离,并进针对业务所需功能范围提供页面,并遵循以下原则进行方案设计。



发布于: 2020 年 12 月 20 日阅读数: 8
用户头像

莫问

关注

站在现在看未来,站在未来看现在 2019.11.20 加入

居安思危,先忧后乐

评论

发布
暂无评论
架构入门感悟之九