写点什么

「架构师训练营」第 9 周作业 - JVM

用户头像
森林
关注
发布于: 2020 年 08 月 05 日



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



分代垃圾回收机制:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的回收算法,以便提高回收效率。我们将对象分为三种状态:年轻代、年老代、持久代。JVM将堆内存划分为 Eden、Survivor (Eden和Survivor都是年轻代中的区域)和 Tenured/Old(年老代) 空间。

判断对象被回收的依据: 引用计算发、可达性分析

垃圾回收算法:标记清除、复制算法、标记整理、分代回收。



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



首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问题,一是并发读,一是并发写,对应到架构设计,就是高可用、一致性和高性能的要求。



  • 高性能。秒杀涉及高读和高写的支持,如何支撑高并发,如何抵抗高IOPS?核心优化理念其实是类似的:高读就尽量"少读"或"读少",高写就数据拆分。本文将从动静分离、热点优化以及服务端性能优化 3 个方面展开

  • 一致性。秒杀的核心关注是商品库存,有限的商品在同一时间被多个请求同时扣减,而且要保证准确性,显而易见是一个难题。如何做到既不多又不少?本文将从业界通用的几种减库存方案切入,讨论一致性设计的核心逻辑

  • 高可用。大型分布式系统在实际运行过程中面对的工况是非常复杂的,业务流量的突增、依赖服务的不稳定、应用自身的瓶颈、物理资源的损坏等方方面面都会对系统的运行带来大大小小的的冲击。如何保障应用在复杂工况环境下还能高效稳定运行,如何预防和面对突发问题,系统设计时应该从哪些方面着手



用户头像

森林

关注

还未添加个人签名 2018.05.07 加入

还未添加个人简介

评论

发布
暂无评论
「架构师训练营」第 9 周作业 - JVM