高

高并发面试题

连载中

高并发场景面试题:线程模型、锁优化、无锁化设计、缓存异步化与吞吐量提升实战。

5 篇文章 开始阅读

教程目录

1

高并发系统的优化手段有哪些?

一、前端优化 CDN 加速静态资源。 浏览器缓存、资源合并压缩。 页面懒加载、预加载。 二、网关层 Nginx 负载均衡,动静分离。 限流(令牌桶、漏桶)。 缓存静态页面。 三、应用层 多级缓存:本地缓存(Caffeine)+ 分布式缓存(Redis)。 异步化:消息队列削峰填谷。 线程池调优,合理

2

高并发下的缓存策略?

一、缓存层级 L1:浏览器缓存。 L2:CDN 缓存。 L3:Nginx/网关缓存。 L4:应用本地缓存(Caffeine、Guava)。 L5:分布式缓存(Redis)。 L6:数据库。 二、缓存更新策略 Cache Aside:应用先查缓存,没有查数据库,写入缓存。删除缓存(不是更新)。最常用。

3

常见的限流算法?

一、固定窗口 把时间分成固定窗口,窗口内计数,超过阈值限流。 - 优点:简单。 - 缺点:窗口边界可能突刺(如窗口末尾和下一个窗口开头各来一半,合起来超限)。 二、滑动窗口 把窗口分成多个小格子,随时间滑动,统计格子总数。 - 解决固定窗口的边界问题。 - 实现稍复杂。 三、漏桶算法 请求进桶,桶以

4

服务降级和熔断的区别?

一、降级(Degrade) 主动关闭非核心功能,保证核心功能可用。 如大促时关闭评论、推荐,保交易。 是一种策略,通常按预设规则触发。 二、熔断(Circuit Breaker) 下游服务故障时,上游不再调用,直接返回降级结果。 类似电路保险丝,防止故障蔓延。 基于错误率、响应时间等指标自动触发。

5

秒杀系统如何设计?

一、挑战 高并发、库存有限、防超卖、防刷。 二、优化手段 1. 前端 按钮置灰,防止重复提交。 答题/验证码防机器人。 2. 网关层 限流(用户维度、IP 维度)。 静态资源 CDN。 3. 应用层 Redis 预减库存,判断是否还有库存。 异步下单:请求写 MQ,消费者处理订单。 本地缓存挡热点商