Week9 作业
请简述 JVM 垃圾回收原理。
垃圾定义:不再使用的对象。JVM 会通过可达性分析对象是否不再使用。手段是通过标记方式,如果一个对象没有被标记,则是可回收的对象。
回收:三步,清理、压缩、复制。
回收算法:为了提高回收的效率,一般采用分代回收,分为新生代(Eden)、老年代(From、to)。比如新生成的对象放到 Eden 区,过段时间对 Eden 区进行垃圾回收,而不是新生代和老年代一起回收。等 Eden 如果满了,则会把一些对象迁移到 From 区,From 满了,则从 From 迁移到 to。分代分区回收提高效率,另外每隔一段时间,也会进行 full gc,也就是全部区都会进行回收操作。目前主要的回收器有 G1,CMS。
设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
挑战:并发量高、准备时间短。
问题:原有系统性能不足,服务器资源不够,代码优化来不及。
核心架构方案和思路:
限流,网关实现限流,如课程中说的三道阀门计算机,
降级,为了保证业务流程可用,暂停部分服务。
CDN,减少网络带宽负载
反向代理,增加设备,提高吞吐量。
前端优化,静态资源,浏览器缓存
利用缓存,不走数据库,走缓存。
评论