架构入门感悟之九
Questions
1、请简述 JVM 垃圾回收原理。
JVM垃圾回收就是将JVM堆中的已经不再被使用的对象清理掉,释放内存资源。
JVM通过一种可达性分析算法识别垃圾对象。具体过程如下:
从线程栈中的局部变量、或者方法区的静态变量出发,将这些变量引用的对象进行标记,然后看这些被标记的变量是否引用其他对象,继续进行标记,所有被标记过的对象都是被使用的对象,而那些没有被标记过的对象就是可以被回收的对象。完成标记后,JVM就会对垃圾对象占用的内存进行回收。
回收垃圾对象的内存主要有三种:清理、压缩、复制。
2、设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
挑战包括两个维度,一个是项目交付方面,另一个是技术实现方面。
项目交付主要体现在:交付时间周期短。
技术实现方面:
1)当前系统架构技术应对高并发存在困难,如何解决该场景下的类“DDOS”攻击,秒杀大量请求图片,存在“网络带宽”耗尽风险;
2)需要提供解决方案有效应对“秒杀器”(一种是秒杀开始前不断刷新页面,直至秒杀开始,抢单;另一种是跳过秒杀页面,直接进入下单页面下单)。
核心架构方案:
1)根据业务需求,计算各类服务器台数、每个商品图片大小上限、预估业务并发模型、求助周边领域协调CDN;
2)考虑时间短,在既有系统中进行扩展,无法按时、保质交付。考虑新建一个“秒杀系统”,并借助已有系统的既有功能交付新业务。
3)新系统需要与旧系统进行隔离,并进针对业务所需功能范围提供页面,并遵循以下原则进行方案设计。
版权声明: 本文为 InfoQ 作者【莫问】的原创文章。
原文链接:【http://xie.infoq.cn/article/a77230324ace2b3edf25b3f2d】。未经作者许可,禁止转载。
评论