后端2026-04-15
后端面试题:系统设计与架构
总结后端系统设计、服务架构、扩展性与容错性相关的常见面试题。
后端面试题:系统设计与架构
1. 请描述高可用系统的关键要素。
- 多副本部署。
- 自动故障切换。
- 健康检查与服务发现。
- 数据和状态的可靠存储。
2. 什么是 CAP 定理?
- 一致性(Consistency)。
- 可用性(Availability)。
- 分区容忍性(Partition tolerance)。
- 系统通常只能在三者中同时满足两项。
3. 你如何设计一个可扩展的 API 服务?
- 采用水平扩展而不是垂直扩展。
- 使用负载均衡和反向代理。
- 解耦服务、使用缓存与异步消息。
4. 数据库读写分离适用哪些场景?
- 读请求远多于写请求。
- 可以通过主从复制保证数据最终一致性。
- 需要处理延迟和主从同步问题。
5. 服务拆分为微服务的优缺点是什么?
优点:更好模块化、独立部署、按需扩展。 缺点:分布式复杂性、网络延迟、运维成本增加。
6. 如何处理分布式系统中的幂等性?
- 设计接口可以重复调用而不产生额外副作用。
- 使用唯一请求 ID、幂等写入策略。
7. 什么是缓存穿透、缓存雪崩、缓存击穿?
- 缓存穿透:查询不存在的数据,直接穿透到后端。
- 缓存雪崩:缓存同时失效,大量请求打到后端。
- 缓存击穿:热点数据失效时高并发访问。
- 解决方式包括布隆过滤器、互斥锁、过期错峰。
8. 你如何评价一个系统的性能瓶颈?
- 监控 CPU、内存、I/O、网络、请求延迟。
- 分析日志、Profile 和慢查询。
- 重点关注最耗时或最频繁的组件。
后端架构系统设计