请简述 JVM 垃圾回收原理。
设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
JVM 垃圾回收就是将 JVM 堆中的已经不再被使用的对象清理掉,释放宝贵的内存资源。
JVM 通过一种可达性分析算法进行垃圾对象的识别。
回收方法包括:清理,压缩,复制
JVM 垃圾回收算法采用 G1 垃圾回收内存管理机制
设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
主要的挑战和问题包括:
网络带宽耗尽
服务器 Load 高,停止响应
数据库瘫痪
核心的架构方案和思路:
静态化:
并发控制,防秒杀器:
简化流程:
砍掉不重要的分支流程,如下单页面的所有数据库查询
以下单成功作为秒杀成功标志。支付流程只要在 1 天内完成即可
前端优化: