极客时间架构师训练营 - week9 - 作业 1

简介: 极客时间架构师训练营 - week9 - 作业 1

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

   首先需要由 JVM 判断出垃圾,典型的方法包括引用计数法和可达性分析法。引用计数法,即给每个对象添加一个计数器,当有地方引用该对象时计数器加 1,当引用失效时计数器减 1。用对象计数器是否为 0 来判断对象是否可被回收。可达性分析法是通过 GC ROOT 的对象作为搜索起始点,通过引用向下搜索,所走过的路径称为引用链,通过对象是否有到达引用链的路径来判断对象是否可被回收。

   在确定了哪些垃圾可以被回收后,JVM 要做的事情就是开始进行垃圾回收。具体方法包括:标记-清除法、标记-复制法、标记-压缩法、分代回收法等。

   标记-清除法是在标记完后统一回收所有被标记对象占用的内存空间。此法会产生大量不连续的内存碎片,不利于后续连续内存的分配;

   标记-复制法则将可用的内存空间按容量划分为大小相等的两块,每次只使用其中一块。当这一块使用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉;

   标记-压缩法则与标记-复制-清除法类似,只是后续的步骤不再是直接清除可以回收的对象,而是将所有存活的对象都向一端移动后,再直接清理掉端边界以外的内存。

   分代回收法根据对象存活周期的不同将内存划分为几块,Java 中主要是新生代、年老代这样就可以根据各个年代的特点,采用合适的收集算法了如新生代采用了复制算法,而老年代采用了压缩算法。


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

主要面临的挑战:

用户都希望能秒杀到特价商品,系统的瞬时访问并发量会很高。不做限制,系统一定会奔溃。

问题:

1.带宽是一定的且前台需要对用户友好;

2.后台严格控制,要保证方案的安全性、可靠性与公平性;

3.响应要快,秒杀系统要尽快上线,不影响目前的系统。

核心的架构方案:

1.另起炉灶,拉出最简化的必要处理后台处理逻辑,组成后台,严格审核代码,避免出现漏洞,被人利用;

2.将页面缓存成 HTML,存到 CDN;

3.CDN 过滤大部分请求,后台再设置多道流量关卡,将访问后台的流量限制到后台所能承受的范围内;

4.进行并发测试演练。


目录
相关文章
|
5月前
|
机器学习/深度学习 算法 安全
隐私计算训练营第三讲-详解隐私计算的架构和技术要点
SecretFlow 是一个隐私保护的统一框架,用于数据分析和机器学习,支持MPC、HE、TEE等隐私计算技术。它提供设备抽象、计算图表示和基于图的ML/DL能力,适应数据水平、垂直和混合分割场景。产品层包括SecretPad(快速体验核心能力)和SecretNote(开发工具)。算法层涉及PSI、PIR、数据分析和联邦学习(水平、垂直、混合)。此外,SecretFlow还有YACL密码库和Kusica任务调度框架,Kusica提供轻量化部署、跨域通信和统一API接口。
201 0
|
消息中间件 缓存 NoSQL
|
消息中间件 存储 关系型数据库
极客时间架构实战营作业八
极客时间架构实战营作业八
152 0
|
消息中间件 Java 中间件
极客时间架构实战营作业六
极客时间架构实战营作业六
115 0
|
运维 关系型数据库 MySQL
极客时间架构实战营作业三
极客时间架构实战营作业三
124 0
|
资源调度 分布式计算 调度
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
|
容灾 网络协议
极客时间架构实战营模块 7 作业
极客时间架构实战营模块 7 作业
79 0
|
存储 缓存 负载均衡
极客时间架构实战营作业五
极客时间架构实战营作业五
124 0
|
存储 JSON NoSQL
极客时间架构实战营作业四
极客时间架构实战营作业四
108 0
极客时间架构实战营作业二
极客时间架构实战营作业二
86 0