准备分布式系统面试,最容易踩的坑是把知识点背成一堆孤立概念:CAP 是一个点、RPC 是一个点、分布式锁是一个点、分布式事务又是一个点。
真正到面试里,面试官更关心的是:你能不能把这些技术放回真实系统里,讲清楚它们解决什么问题、带来什么代价、适合什么场景。
这篇文章是 JavaGuide 分布式系统内容的面试复习导航,不会重复搬运所有答案,而是帮你把分布式相关文章串起来,按面试准备顺序建立一条清晰路径。
分布式面试先抓主线
分布式系统面试通常围绕 4 条主线展开:
- 一致性与可用性的权衡:CAP、BASE、最终一致性、共识算法。
- 跨节点通信与治理:RPC、注册发现、API 网关、配置中心。
- 分布式数据一致性问题:分布式 ID、分布式锁、分布式事务。
- 典型中间件与落地场景:ZooKeeper、Dubbo、Spring Cloud Gateway 等。
高可用系统面试考的不是“系统永远不出问题”,而是你是否理解:故障一定会发生,关键是系统能不能限制故障范围、快速恢复,并避免把小故障放大成全站事故。
这篇文章把 JavaGuide 现有高可用相关文章串成一条面试复习路线,适合准备后端开发、系统设计和中高级岗位面试。
高可用面试先建立故障视角
高可用设计可以从 5 个问题开始拆:
- 请求太多怎么办? 限流、排队、削峰。
- 下游变慢怎么办? 超时、重试、熔断、隔离。
- 核心服务挂了怎么办? 降级、冗余、故障转移。
- 重复请求怎么办? 幂等、防重、状态机。
- 上线前怎么证明系统扛得住? 压测、监控、演练、容量评估。
什么是高可用?可用性的判断标准是啥?
高可用(High Availability,简称 HA) 是指系统在绝大部分时间内能够持续提供正常服务的能力。高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的。
一般情况下,我们使用 多少个 9 来评判一个系统的可用性,比如 99.9999% 就是代表该系统在所有的运行时间中只有 0.0001% 的时间是不可用的,这样的系统就是非常非常高可用的了!可用性较差的系统可能连 90%(1 个 9)都达不到。
| 可用性等级 | 可用性百分比 | 年度停机时间 | 典型场景 |
|---|---|---|---|
| 1 个 9 | 90% | 36.5 天 | 个人博客 |
| 2 个 9 | 99% | 3.65 天 | 普通企业系统 |
| 3 个 9 | 99.9% | 8.76 小时 | 在线服务 |
| 4 个 9 | 99.99% | 52.6 分钟 | 金融交易系统 |
| 5 个 9 | 99.999% | 5.26 分钟 | 电信级系统 |
高性能系统面试不是问你会不会背几个优化手段,而是看你能不能把请求链路拆开:用户请求进来后,哪里可能慢,哪里可能扛不住,哪里需要削峰,哪里需要减少数据库压力,哪里需要用监控和压测验证效果。
这篇文章把 JavaGuide 现有高性能相关文章串成一条面试复习路线,适合准备后端开发、系统设计和架构设计相关面试。
高性能系统设计面试怎么准备?
高性能问题通常可以按请求链路拆成 4 层:
- 入口层:CDN、负载均衡、网关。
- 应用层:限流、异步化、线程池、批处理。
- 数据层:索引、SQL 优化、读写分离、分库分表、冷热分离。
- 削峰层:消息队列、延迟处理、重试和补偿。
