# 后端技术进阶之路
大家好,我是小林。
我的「小林coding (opens new window)」公众号从 2020 年开始创作,不知不觉已经好几年啦,分享的内容主要是专注程序员开发的,相信一直在阅读我公众号的读者,都或多或少收获了很多干货知识,再次也感谢大家的关注和支持。
在公众号里,我除了有分享自己的图解系列 (opens new window)和大厂面试系列 (opens new window)的内容,还分享过其他公众号优秀的技术文章,这些优秀的技术文章,我都收录到了「后端面试常见题 (opens new window)」。
现在收录的技术文章越来越多了,为了更方便大家学习,我也在网站这里,帮大家重新整理分类,按照由浅入深、循序渐进的方式组织,从计算机基础原理到架构设计实战,方便后续同学系统化学习,同时随着收录的内容越来越多,后续也会持续更新。
# 学习路径
本系列涵盖内容非常丰富,从计算机基础、数据库、设计模式、消息队列、系统设计、高并发优化、分布式架构、微服务、云原生等多个维度,涵盖面试高频问题。虽然不是完全体系化的教程,但每个主题都经过精心分类整理,非常适合作为平时的技术积累,扩展自己的技术视野,在面试中展现技术深度和解决实际问题的能力。
建议学习顺序:
- 计算机基础 - 打牢基础,理解操作系统、网络原理
- 数据库 - 掌握各类数据存储方案及其适用场景
- 设计模式 - 学习代码优化与设计思想
- 消息队列 - 理解异步通信与消息中间件
- 系统设计 - 积累实战经验,掌握架构设计方法
- 高并发与性能优化 - 学习应对大流量的技术方案
- 分布式系统 - 理解分布式架构的核心问题与解决方案
- 微服务与云原生 - 掌握现代化应用架构
# 一、计算机基础
# 1.1 计算机网络基础
理解网络模型和网络协议,是系统设计的基石。
# 1.2 CDN 与内容分发
深入理解 CDN 原理,掌握全局流量分发方案。
# 1.3 网络安全
了解常见的网络攻击方式及防护手段。
# 1.4 操作系统原理
掌握进程、内存、I/O 等操作系统核心概念。
程序执行与系统启动:
进程与并发:
内存管理:
I/O 模型:
# 二、数据库与存储
# 2.1 关系型数据库 - MySQL
理解 MySQL 架构和查询原理。
# 2.2 缓存数据库 - Redis
掌握 Redis 架构、数据结构及应用场景。
# 2.3 搜索引擎 - Elasticsearch
了解 ES 的倒排索引及搜索原理。
# 2.4 文档数据库 - MongoDB
理解文档型数据库的特点和应用场景。
# 2.5 分布式文件系统 - HDFS
掌握海量数据存储方案。
# 三、设计模式与代码优化
# 3.1 代码优化
学习消除冗余代码,提升代码质量。
# 3.2 设计模式应用
掌握常见设计模式及其在项目中的实际应用。
# 四、消息队列
# 4.1 消息队列基础
理解消息队列的核心概念、应用场景和设计原理。
- 面试官:你的项目为什么要用消息队列? (opens new window)
- 面试官:消息队列在架构设计中有什么用? (opens new window)
- 面试官:消息队列是怎么演进的? (opens new window)
# 4.2 消息可靠性保障
掌握消息不丢失、不重复消费等可靠性保障机制。
- 面试官:消息队列怎样防止消息重复? (opens new window)
- 面试官:最多一次、至少一次和正好一次有什么区别? (opens new window)
- 面试官:在使用 MQ 的时候,怎么确保消息 100% 不丢失? (opens new window)
# 4.3 消息队列设计
学习如何设计和实现一个消息队列系统。
# 4.4 RabbitMQ
了解 RabbitMQ 架构和应用场景。
# 4.5 Kafka
深入学习 Kafka 的架构、性能优化和常见问题处理。
架构与性能:
- 面试官:Kafka架构长什么样的? (opens new window)
- 面试官:Kafka为什么这么快? (opens new window)
- 面试官:你说说 Kafka 为什么是高性能的? (opens new window)
可靠性与问题处理:
# 4.6 RocketMQ
对比学习 RocketMQ 与 Kafka 的差异。
# 五、系统设计与架构
# 5.1 业务系统设计
掌握各类互联网业务系统的架构设计方法。
电商系统:
社交互动系统:
- 面试官:如何搭建一个高可用评论系统,支撑百万级用户实时互动? (opens new window)
- 面试官:如何设计一个百万用户同时在线的直播评论系统? (opens new window)
- 面试官:高并发场景下,如何设计一个不崩的点赞系统? (opens new window)
排行榜系统:
# 5.2 基础设施设计
学习通用技术组件的设计方法。
流量控制:
URL 短链:
分布式ID:
# 5.3 安全与认证
掌握系统安全设计和用户认证方案。
- 面试官:你项目是怎么存密码的? (opens new window)
- 面试官:单点登录是怎么工作的? (opens new window)
- 面试官:如何设计安全的对外 API? (opens new window)
# 5.4 系统扩展性设计
学习如何设计可扩展的系统架构,应对用户规模增长。
- 面试官:如果你的项目要支持百万用户,你会如何设计? (opens new window)
- 面试官:如果你的项目用户规模放大了 100 倍,怎么应对? (opens new window)
- 面试官:你的项目如何做到高可用、高吞吐、高扩展性? (opens new window)
# 六、高并发与性能优化
# 6.1 性能问题排查
掌握常见性能问题的定位与分析方法。
# 6.2 性能优化方法
学习系统性能优化的各种技术手段。
- 面试官:如何提高程序的性能? (opens new window)
- 面试官:怎样确保你的系统能在 1s 内响应用户请求? (opens new window)
- 面试官:Java, Go, Python的垃圾回收是怎么工作的? (opens new window)
# 6.3 缓存一致性
理解缓存与数据库的一致性问题及解决方案。
# 6.4 高可用保障
掌握负载均衡、熔断、降级、隔离等高可用技术。
负载均衡:
- 面试官:你背一下负载均衡算法? (opens new window)
- 面试官:你的系统负载均衡是怎么做的? (opens new window)
- 面试官:七层负载均衡和四层负载均衡有什么区别? (opens new window)
熔断降级:
- 面试官:服务熔断是指什么? (opens new window)
- 面试官:应对高并发,如何设计服务降级方案? (opens new window)
- 面试官:高并发场景下,一个好的熔断策略该怎么设计? (opens new window)
服务隔离:
# 6.5 运维与监控
掌握系统监控和数据迁移方案。
# 七、分布式系统
# 7.1 分布式事务
理解分布式环境下的事务一致性问题及解决方案。
# 7.2 分库分表
掌握海量数据场景下的数据分片方案。
# 7.3 高可用架构
学习分布式系统的高可用设计。
# 八、微服务架构
# 8.1 微服务高可用
掌握微服务场景下的高可用保障机制。
# 8.2 微服务分布式事务
理解微服务架构下的分布式事务解决方案。
# 8.3 微服务负载均衡
学习微服务场景下的负载均衡方案。
# 九、云原生技术
# 9.1 容器技术 - Docker
理解容器化技术的原理和优势。
# 9.2 容器编排 - Kubernetes
掌握 Kubernetes 的核心概念和应用场景。
对了,最新的优质技术文章都会在公众号首发,别忘记关注哦!!如果你想加入百人技术交流群,扫码下方二维码回复「加群」。

← 性能测试面试题