写点什么

第九周作业

用户头像
hunk
关注
发布于: 2020 年 12 月 20 日
一、请简述 JVM 垃圾回收原理。

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

JVM 通过一种可达性分析算法进行垃圾对象的识别。

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

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

1、秒杀系统带来的高并发主要造成的挑战有:

1、网络带宽耗尽

2、服务器崩溃,停止响应

3、数据库瘫痪等

2、另外,秒杀系统设计不合理也会带来一些问题,比如秒杀器等存在。

秒杀器可以不停刷新秒杀页面,由脚本在秒杀开始时抢先下单,造成真实客户正常操作无法抢到秒杀商品。

秒杀器还可能跳过秒杀页面直接进入下单页面,提前下单。

3、秒杀系统设计原则

(1)静态化,商品页面、图片及 js 文件全部静态化;

(2)并发控制,防止秒杀器。比如三道阀门设计、随机 URL 等;

(3)简化流程,减少不必要等分支,甚至可以不访问到数据库;

(4)前段优化,图片合并、html 内容压缩、css 及 js 精简等。

4、优化思路

(1)使用更轻量更快速等服务器;

(2)使用较新等稳定版服务器;

(3)架设山寨版本等 CDN 服务器;

(4)使用反向代理等。


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

hunk

关注

还未添加个人签名 2019.01.23 加入

还未添加个人简介

评论

发布
暂无评论
第九周作业