**[English](./README_EN.md)** | **[日本語](./README_JA.md)** | **简体中文**

- 推荐在线阅读（体验更好，速度更快）：[javaguide.cn](https://javaguide.cn/)
- 面试突击版本（只保留重点，附带精美 PDF 下载）：[interview.javaguide.cn](https://interview.javaguide.cn/)

<div align="center">

[![logo](https://oss.javaguide.cn/github/javaguide/csdn/1c00413c65d1995993bf2b0daf7b4f03.png)](https://github.com/Snailclimb/JavaGuide)

[GitHub](https://github.com/Snailclimb/JavaGuide) | [Gitee](https://gitee.com/SnailClimb/JavaGuide)

<a href="https://trendshift.io/repositories/1319" target="_blank"><img src="https://trendshift.io/api/badge/repositories/1319" alt="Snailclimb%2FJavaGuide | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

</div>

> - **大模型实战项目**： [⭐AI 智能面试辅助平台 + RAG 知识库](https://javaguide.cn/zhuanlan/interview-guide.html)（基于 Spring Boot 4.0 + Java 21 + Spring AI 2.0，非常适合作为学习和简历项目，学习门槛低）。
> - **面试资料补充**：
>   - [《Java 面试指北》](https://javaguide.cn/zhuanlan/java-mian-shi-zhi-bei.html)：四年打磨，和 [JavaGuide 开源版](https://javaguide.cn/)的内容互补，带你从零开始系统准备面试！
>   - [《后端面试高频系统设计&场景题》](https://javaguide.cn/zhuanlan/back-end-interview-high-frequency-system-design-and-scenario-questions.html)：30+ 道高频系统设计和场景面试，助你应对当下中大厂面试趋势。
> - **使用建议** ：如果你想要系统准备 Java 后端面试但又不知道如何开始的，可以参考 [Java 后端面试通关计划（后端通用）](https://javaguide.cn/interview-preparation/backend-interview-plan.html)。
> - **求个 Star**：如果觉得 JavaGuide 的内容对你有帮助的话，还请点个免费的 Star，这是对我最大的鼓励，感谢各位一起同行，共勉！传送门：[GitHub](https://github.com/Snailclimb/JavaGuide) | [Gitee](https://gitee.com/SnailClimb/JavaGuide)。
> - **转载须知**：以下所有文章如非文首说明为转载皆为 JavaGuide 原创，转载请在文首注明出处。如发现恶意抄袭/搬运，会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境！

<!-- #region home -->

## AI 应用开发面试指南

面向后端开发者的 AI 应用开发、AI 编程实战与面试指南已开源，涵盖 LLM、Agent、RAG、MCP、Claude Code、Codex 等核心技术与工程实践。对标 JavaGuide！有帮助的话，欢迎 Star！

- **项目地址**：[https://github.com/Snailclimb/AIGuide](https://github.com/Snailclimb/AIGuide)
- **在线阅读**：[https://javaguide.cn/ai/](https://javaguide.cn/ai/)

## 后端面试准备

- [⭐Java 后端面试通关计划（涵盖后端通用体系）](./docs/interview-preparation/backend-interview-plan.md) (一定要看 :+1:)
- [如何高效准备 Java 面试？](./docs/interview-preparation/teach-you-how-to-prepare-for-the-interview-hand-in-hand.md)
- [Java 后端面试重点总结](./docs/interview-preparation/key-points-of-interview.md)
- [Java 学习路线（最新版，4w+ 字）](./docs/interview-preparation/java-roadmap.md)
- [程序员简历编写指南](./docs/interview-preparation/resume-guide.md)
- [项目经验指南](./docs/interview-preparation/project-experience-guide.md)
- [面试太紧张怎么办？](./docs/interview-preparation/how-to-handle-interview-nerves.md)
- [校招没有实习经历怎么办？实习经历怎么写？](./docs/interview-preparation/internship-experience.md)

## Java

### 基础

**知识点/面试题总结**（必看:+1:）：

- [Java 基础常见知识点&面试题总结(上)](./docs/java/basis/java-basic-questions-01.md)
- [Java 基础常见知识点&面试题总结(中)](./docs/java/basis/java-basic-questions-02.md)
- [Java 基础常见知识点&面试题总结(下)](./docs/java/basis/java-basic-questions-03.md)

**重要知识点详解**：

- [为什么 Java 中只有值传递？](./docs/java/basis/why-there-only-value-passing-in-java.md)
- [Java 序列化详解](./docs/java/basis/serialization.md)
- [泛型&通配符详解](./docs/java/basis/generics-and-wildcards.md)
- [Java 反射机制详解](./docs/java/basis/reflection.md)
- [Java 代理模式详解](./docs/java/basis/proxy.md)
- [BigDecimal 详解](./docs/java/basis/bigdecimal.md)
- [Java 魔法类 Unsafe 详解](./docs/java/basis/unsafe.md)
- [Java SPI 机制详解](./docs/java/basis/spi.md)
- [Java 语法糖详解](./docs/java/basis/syntactic-sugar.md)

### 集合

**知识点/面试题总结**：

- [Java 集合常见知识点&面试题总结(上)](./docs/java/collection/java-collection-questions-01.md) （必看 :+1:）
- [Java 集合常见知识点&面试题总结(下)](./docs/java/collection/java-collection-questions-02.md) （必看 :+1:）
- [Java 容器使用注意事项总结](./docs/java/collection/java-collection-precautions-for-use.md)

**源码分析**：

- [ArrayList 核心源码+扩容机制分析](./docs/java/collection/arraylist-source-code.md)
- [LinkedList 核心源码分析](./docs/java/collection/linkedlist-source-code.md)
- [HashMap 核心源码+底层数据结构分析](./docs/java/collection/hashmap-source-code.md)
- [ConcurrentHashMap 核心源码+底层数据结构分析](./docs/java/collection/concurrent-hash-map-source-code.md)
- [LinkedHashMap 核心源码分析](./docs/java/collection/linkedhashmap-source-code.md)
- [CopyOnWriteArrayList 核心源码分析](./docs/java/collection/copyonwritearraylist-source-code.md)
- [ArrayBlockingQueue 核心源码分析](./docs/java/collection/arrayblockingqueue-source-code.md)
- [PriorityQueue 核心源码分析](./docs/java/collection/priorityqueue-source-code.md)
- [DelayQueue 核心源码分析](./docs/java/collection/delayqueue-source-code.md)

### IO

- [IO 基础知识总结](./docs/java/io/io-basis.md)
- [IO 设计模式总结](./docs/java/io/io-design-patterns.md)
- [IO 模型详解](./docs/java/io/io-model.md)
- [NIO 核心知识总结](./docs/java/io/nio-basis.md)

### 并发

**知识点/面试题总结**（必看 :+1:）

- [Java 并发常见知识点&面试题总结（上）](./docs/java/concurrent/java-concurrent-questions-01.md)
- [Java 并发常见知识点&面试题总结（中）](./docs/java/concurrent/java-concurrent-questions-02.md)
- [Java 并发常见知识点&面试题总结（下）](./docs/java/concurrent/java-concurrent-questions-03.md)

**重要知识点详解**：

- [Java 锁详解](./docs/java/concurrent/java-lock.md)
- [乐观锁和悲观锁详解](./docs/java/concurrent/optimistic-lock-and-pessimistic-lock.md)
- [CAS 详解](./docs/java/concurrent/cas.md)
- [JMM（Java 内存模型）详解](./docs/java/concurrent/jmm.md)
- **线程池**：[Java 线程池详解](./docs/java/concurrent/java-thread-pool-summary.md)、[Java 线程池最佳实践](./docs/java/concurrent/java-thread-pool-best-practices.md)
- [ThreadLocal 详解](./docs/java/concurrent/threadlocal.md)
- [Java 并发容器总结](./docs/java/concurrent/java-concurrent-collections.md)
- [Atomic 原子类总结](./docs/java/concurrent/atomic-classes.md)
- [AQS 详解](./docs/java/concurrent/aqs.md)
- [CompletableFuture 详解](./docs/java/concurrent/completablefuture-intro.md)

### JVM（必看 :+1:）

JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) 和周志明老师的[《深入理解 Java 虚拟机（第 3 版）》](https://book.douban.com/subject/34907497/) （强烈建议阅读多遍！）。

- **[Java 内存区域](./docs/java/jvm/memory-area.md)**
- **[JVM 垃圾回收](./docs/java/jvm/jvm-garbage-collection.md)**
- [类文件结构](./docs/java/jvm/class-file-structure.md)
- **[类加载过程](./docs/java/jvm/class-loading-process.md)**
- [类加载器](./docs/java/jvm/classloader.md)
- [【待完成】最重要的 JVM 参数总结（翻译完善了一半）](./docs/java/jvm/jvm-parameters-intro.md)
- [【加餐】大白话带你认识 JVM](./docs/java/jvm/jvm-intro.md)
- [JDK 监控和故障处理工具](./docs/java/jvm/jdk-monitoring-and-troubleshooting-tools.md)

### 新特性

- **Java 8**：[Java 8 新特性总结（翻译）](./docs/java/new-features/java8-tutorial-translate.md)、[Java8 常用新特性总结](./docs/java/new-features/java8-common-new-features.md)
- [Java 9 新特性概览](./docs/java/new-features/java9.md)
- [Java 10 新特性概览](./docs/java/new-features/java10.md)
- [Java 11 新特性概览](./docs/java/new-features/java11.md)
- [Java 12 & 13 新特性概览](./docs/java/new-features/java12-13.md)
- [Java 14 & 15 新特性概览](./docs/java/new-features/java14-15.md)
- [Java 16 新特性概览](./docs/java/new-features/java16.md)
- [Java 17 新特性概览](./docs/java/new-features/java17.md)
- [Java 18 新特性概览](./docs/java/new-features/java18.md)
- [Java 19 新特性概览](./docs/java/new-features/java19.md)
- [Java 20 新特性概览](./docs/java/new-features/java20.md)
- [Java 21 新特性概览](./docs/java/new-features/java21.md)
- [Java 22 & 23 新特性概览](./docs/java/new-features/java22-23.md)
- [Java 24 新特性概览](./docs/java/new-features/java24.md)
- [Java 25 新特性概览](./docs/java/new-features/java25.md)

## 计算机基础

### 操作系统

- [操作系统常见知识点&面试题总结(上)](./docs/cs-basics/operating-system/operating-system-basic-questions-01.md)
- [操作系统常见知识点&面试题总结(下)](./docs/cs-basics/operating-system/operating-system-basic-questions-02.md)
- [进程与线程详解：区别、状态、通信、上下文切换与虚拟线程](./docs/cs-basics/operating-system/process-and-thread.md)
- [进程间通信（IPC）详解：管道、消息队列、共享内存、Socket 与 Binder](./docs/cs-basics/operating-system/ipc.md)
- [死锁详解：四个必要条件、Java 死锁排查与数据库死锁处理](./docs/cs-basics/operating-system/dead-lock.md)
- [虚拟内存详解：地址转换、TLB、缺页中断与页面置换](./docs/cs-basics/operating-system/virtual-memory.md)
- [I/O 多路复用详解：select、poll、epoll 原理与区别](./docs/cs-basics/operating-system/io-multiplexing.md)
- [零拷贝详解：mmap、sendfile 与 splice](./docs/cs-basics/operating-system/zero-copy.md)
- **Linux**：
  - [后端程序员必备的 Linux 基础知识总结](./docs/cs-basics/operating-system/linux-intro.md)
  - [Shell 编程基础知识总结](./docs/cs-basics/operating-system/shell-intro.md)

### 网络

**知识点/面试题总结**：

- [计算机网络常见知识点&面试题总结(上)](./docs/cs-basics/network/other-network-questions.md)
- [计算机网络常见知识点&面试题总结(下)](./docs/cs-basics/network/other-network-questions2.md)
- [谢希仁老师的《计算机网络》内容总结（补充）](./docs/cs-basics/network/computer-network-xiexiren-summary.md)

**重要知识点详解**：

- [OSI 和 TCP/IP 网络分层模型详解（基础）](./docs/cs-basics/network/osi-and-tcp-ip-model.md)
- [应用层常见协议总结（应用层）](./docs/cs-basics/network/application-layer-protocol.md)
- [HTTP vs HTTPS（应用层）](./docs/cs-basics/network/http-vs-https.md)
- [HTTP 1.0 vs HTTP 1.1（应用层）](./docs/cs-basics/network/http1.0-vs-http1.1.md)
- [HTTP 常见状态码（应用层）](./docs/cs-basics/network/http-status-codes.md)
- [DNS 域名系统详解（应用层）](./docs/cs-basics/network/dns.md)
- [TCP 三次握手和四次挥手（传输层）](./docs/cs-basics/network/tcp-connection-and-disconnection.md)
- [TCP Keepalive 和 HTTP Keep-Alive 有什么区别？（传输层）](./docs/cs-basics/network/tcp-keepalive-vs-http-keepalive.md)
- [TCP 传输可靠性保障（传输层）](./docs/cs-basics/network/tcp-reliability-guarantee.md)
- [能 Ping 通，TCP 就一定能连通吗？（传输层）](./docs/cs-basics/network/can-ping-but-tcp-may-not-connect.md)
- [TCP 和 UDP 可以使用同一个端口吗？（传输层）](./docs/cs-basics/network/can-tcp-and-udp-use-the-same-port.md)
- [一台主机最多能保持多少个 TCP 连接？（传输层）](./docs/cs-basics/network/maximum-number-of-tcp-connections-per-host.md)
- [ARP 协议详解(网络层)](./docs/cs-basics/network/arp.md)
- [NAT 协议详解(网络层)](./docs/cs-basics/network/nat.md)
- [网络攻击常见手段总结（安全）](./docs/cs-basics/network/network-attack-means.md)

### 数据结构

**图解数据结构：**

- [线性数据结构 :数组、链表、栈、队列](./docs/cs-basics/data-structure/linear-data-structure.md)
- [图](./docs/cs-basics/data-structure/graph.md)
- [堆](./docs/cs-basics/data-structure/heap.md)
- [树](./docs/cs-basics/data-structure/tree.md)：重点关注[红黑树](./docs/cs-basics/data-structure/red-black-tree.md)、B-，B+，B\*树、LSM 树

其他常用数据结构：

- [布隆过滤器](./docs/cs-basics/data-structure/bloom-filter.md)

### 算法

算法这部分内容非常重要，如果你不知道如何学习算法的话，可以看下我写的：

- [算法学习书籍+资源推荐](https://www.zhihu.com/question/323359308/answer/1545320858)。
- [如何刷 Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374)

**常见算法问题总结**：

- [几道常见的字符串算法题总结](./docs/cs-basics/algorithms/string-algorithm-problems.md)
- [几道常见的链表算法题总结](./docs/cs-basics/algorithms/linkedlist-algorithm-problems.md)
- [剑指 offer 部分编程题](./docs/cs-basics/algorithms/the-sword-refers-to-offer.md)
- [十大经典排序算法](./docs/cs-basics/algorithms/10-classical-sorting-algorithms.md)

另外，[GeeksforGeeks](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) 这个网站总结了常见的算法，比较全面系统。

## 数据库

### 基础

- [数据库基础知识总结](./docs/database/basis.md)
- [NoSQL 基础知识总结](./docs/database/nosql.md)
- [字符集详解](./docs/database/character-set.md)
- SQL :
  - [SQL 语法基础知识总结](./docs/database/sql/sql-syntax-summary.md)
  - [SQL 常见面试题总结](./docs/database/sql/sql-questions-01.md)

### MySQL

**知识点/面试题总结：**

- **[MySQL 常见知识点&面试题总结](./docs/database/mysql/mysql-questions-01.md)** （必看 :+1:）
- [MySQL 高性能优化规范建议总结](./docs/database/mysql/mysql-high-performance-optimization-specification-recommendations.md)

**重要知识点：**

- [MySQL 索引详解](./docs/database/mysql/mysql-index.md)
- [MySQL 索引失效场景总结](./docs/database/mysql/mysql-index-invalidation.md)
- [MySQL 事务隔离级别图文详解)](./docs/database/mysql/transaction-isolation-level.md)
- [MySQL 三大日志(binlog、redo log 和 undo log)详解](./docs/database/mysql/mysql-logs.md)
- [MySQL 备份与恢复详解](./docs/database/mysql/mysql-backup-and-restore.md)
- [InnoDB 存储引擎对 MVCC 的实现](./docs/database/mysql/innodb-implementation-of-mvcc.md)
- [SQL 语句在 MySQL 中的执行过程](./docs/database/mysql/how-sql-executed-in-mysql.md)
- [MySQL 查询缓存详解](./docs/database/mysql/mysql-query-cache.md)
- [MySQL 执行计划分析](./docs/database/mysql/mysql-query-execution-plan.md)
- [MySQL 自增主键一定是连续的吗](./docs/database/mysql/mysql-auto-increment-primary-key-continuous.md)
- [MySQL 时间类型数据存储建议](./docs/database/mysql/some-thoughts-on-database-storage-time.md)
- [MySQL 隐式转换造成索引失效](./docs/database/mysql/index-invalidation-caused-by-implicit-conversion.md)

### Redis

**知识点/面试题总结**（必看:+1:）：

- [Redis 常见知识点&面试题总结(上)](./docs/database/redis/redis-questions-01.md)
- [Redis 常见知识点&面试题总结(下)](./docs/database/redis/redis-questions-02.md)

**重要知识点：**

- [3 种常用的缓存读写策略详解](./docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md)
- [Redis 能做消息队列吗？怎么实现？](./docs/database/redis/redis-stream-mq.md)
- [Redis 5 种基本数据结构详解](./docs/database/redis/redis-data-structures-01.md)
- [Redis 3 种特殊数据结构详解](./docs/database/redis/redis-data-structures-02.md)
- [Redis 持久化机制详解](./docs/database/redis/redis-persistence.md)
- [Redis 内存碎片详解](./docs/database/redis/redis-memory-fragmentation.md)
- [Redis 常见阻塞原因总结](./docs/database/redis/redis-common-blocking-problems-summary.md)
- [Redis 集群详解](./docs/database/redis/redis-cluster.md)

### MongoDB

- [MongoDB 常见知识点&面试题总结(上)](./docs/database/mongodb/mongodb-questions-01.md)
- [MongoDB 常见知识点&面试题总结(下)](./docs/database/mongodb/mongodb-questions-02.md)

## 搜索引擎

[Elasticsearch 常见面试题总结(付费)](./docs/database/elasticsearch/elasticsearch-questions-01.md)

![JavaGuide 官方公众号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)

## 开发工具

### Maven

- [Maven 核心概念总结](./docs/tools/maven/maven-core-concepts.md)
- [Maven 最佳实践](./docs/tools/maven/maven-best-practices.md)

### Gradle

[Gradle 核心概念总结](./docs/tools/gradle/gradle-core-concepts.md)（可选，目前国内还是使用 Maven 普遍一些）

### Docker

- [Docker 核心概念总结](./docs/tools/docker/docker-intro.md)
- [Docker 实战](./docs/tools/docker/docker-in-action.md)

### Git

- [Git 核心概念总结](./docs/tools/git/git-intro.md)
- [GitHub 实用小技巧总结](./docs/tools/git/github-tips.md)

## 系统设计

- [⭐系统设计常见面试题总结](./docs/system-design/system-design-questions.md)
- [⭐设计模式常见面试题总结](https://interview.javaguide.cn/system-design/design-pattern.html)

### 基础

- [RestFul API 简明教程](./docs/system-design/basis/RESTfulAPI.md)
- [软件工程简明教程](./docs/system-design/basis/software-engineering.md)
- [代码命名指南](./docs/system-design/basis/naming.md)
- [代码重构指南](./docs/system-design/basis/refactoring.md)
- [单元测试指南](./docs/system-design/basis/unit-test.md)

### 常用框架

#### Spring/SpringBoot（必看 :+1:）

**知识点/面试题总结** :

- [Spring 常见知识点&面试题总结](./docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md)
- [SpringBoot 常见知识点&面试题总结](./docs/system-design/framework/spring/springboot-knowledge-and-questions-summary.md)
- [Spring/Spring Boot 常用注解总结](./docs/system-design/framework/spring/spring-common-annotations.md)
- [SpringBoot 入门指南](https://github.com/Snailclimb/springboot-guide)

**重要知识点详解**：

- [IoC & AOP详解（快速搞懂）](./docs/system-design/framework/spring/ioc-and-aop.md)
- [Spring 事务详解](./docs/system-design/framework/spring/spring-transaction.md)
- [Spring 中的设计模式详解](./docs/system-design/framework/spring/spring-design-patterns-summary.md)
- [SpringBoot 自动装配原理详解](./docs/system-design/framework/spring/spring-boot-auto-assembly-principles.md)

#### MyBatis

[MyBatis 常见面试题总结](./docs/system-design/framework/mybatis/mybatis-interview.md)

### 安全

#### 认证授权

- [认证授权基础概念详解](./docs/system-design/security/basis-of-authority-certification.md)
- [JWT 基础概念详解](./docs/system-design/security/jwt-intro.md)
- [JWT 优缺点分析以及常见问题解决方案](./docs/system-design/security/advantages-and-disadvantages-of-jwt.md)
- [SSO 单点登录详解](./docs/system-design/security/sso-intro.md)
- [权限系统设计详解](./docs/system-design/security/design-of-authority-system.md)

#### 数据安全

- [常见加密算法总结](./docs/system-design/security/encryption-algorithms.md)
- [敏感词过滤方案总结](./docs/system-design/security/sentive-words-filter.md)
- [数据脱敏方案总结](./docs/system-design/security/data-desensitization.md)
- [为什么前后端都要做数据校验](./docs/system-design/security/data-validation.md)
- [为什么忘记密码时只能重置，不能告诉你原密码？](./docs/system-design/security/why-password-reset-instead-of-retrieval.md)

### 定时任务

[Java 定时任务详解](./docs/system-design/schedule-task.md)

### Web 实时消息推送

[Web 实时消息推送详解](./docs/system-design/web-real-time-message-push.md)

## 分布式

- [⭐分布式高频面试题](https://interview.javaguide.cn/distributed-system/distributed-system.html)
- [分布式系统入门](https://javaguide.cn/distributed-system/distributed-system-intro.html)

### 理论&算法&协议

- [CAP 理论和 BASE 理论解读](https://javaguide.cn/distributed-system/protocol/cap-and-base-theorem.html)
- [拜占庭将军问题详解](https://javaguide.cn/distributed-system/protocol/byzantine-generals-problem.html)
- [Paxos 算法解读](https://javaguide.cn/distributed-system/protocol/paxos-algorithm.html)
- [Raft 算法解读](https://javaguide.cn/distributed-system/protocol/raft-algorithm.html)
- [ZAB 协议解读](https://javaguide.cn/distributed-system/protocol/zab.html)
- [Gossip 协议详解](https://javaguide.cn/distributed-system/protocol/gossip-protocol.html)
- [一致性哈希算法详解](https://javaguide.cn/distributed-system/protocol/consistent-hashing.html)

### RPC

- [RPC 基础知识总结](https://javaguide.cn/distributed-system/rpc/rpc-intro.html)
- [Dubbo 常见知识点&面试题总结](https://javaguide.cn/distributed-system/rpc/dubbo.html)

### ZooKeeper

> 这两篇文章可能有内容重合部分，推荐都看一遍。

- [ZooKeeper 相关概念总结(入门)](https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.html)
- [ZooKeeper 相关概念总结(进阶)](https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.html)

### API 网关

- [API 网关基础知识总结](https://javaguide.cn/distributed-system/api-gateway.html)
- [Spring Cloud Gateway 常见知识点&面试题总结](./docs/distributed-system/spring-cloud-gateway-questions.md)

### 分布式 ID

- [分布式ID介绍&实现方案总结](https://javaguide.cn/distributed-system/distributed-id.html)
- [分布式 ID 设计指南](https://javaguide.cn/distributed-system/distributed-id-design.html)

### 分布式锁

- [分布式锁介绍](https://javaguide.cn/distributed-system/distributed-lock.html)
- [分布式锁常见实现方案总结](https://javaguide.cn/distributed-system/distributed-lock-implementations.html)

### 分布式事务

[分布式事务常见知识点&面试题总结](https://javaguide.cn/distributed-system/distributed-transaction.html)

### 分布式配置中心

[分布式配置中心常见知识点&面试题总结](./docs/distributed-system/distributed-configuration-center.md)

## 高性能

### 数据库优化

- [数据库读写分离和分库分表](./docs/high-performance/read-and-write-separation-and-library-subtable.md)
- [数据冷热分离](./docs/high-performance/data-cold-hot-separation.md)
- [常见 SQL 优化手段总结](./docs/high-performance/sql-optimization.md)
- [深度分页介绍及优化建议](./docs/high-performance/deep-pagination-optimization.md)

### 负载均衡

[负载均衡常见知识点&面试题总结](./docs/high-performance/load-balancing.md)

### CDN

[CDN（内容分发网络）常见知识点&面试题总结](./docs/high-performance/cdn.md)

### 消息队列

- [消息队列基础知识总结](./docs/high-performance/message-queue/message-queue.md)
- [Disruptor 常见知识点&面试题总结](./docs/high-performance/message-queue/disruptor-questions.md)
- [RabbitMQ 常见知识点&面试题总结](./docs/high-performance/message-queue/rabbitmq-questions.md)
- [RocketMQ 常见知识点&面试题总结](./docs/high-performance/message-queue/rocketmq-questions.md)
- [Kafka 常见知识点&面试题总结](./docs/high-performance/message-queue/kafka-questions-01.md)

## 高可用

[高可用系统设计指南](./docs/high-availability/high-availability-system-design.md)

### 冗余设计

[冗余设计详解](./docs/high-availability/redundancy.md)

### 限流

[服务限流详解](./docs/high-availability/limit-request.md)

### 降级&熔断

[降级&熔断详解](./docs/high-availability/fallback-and-circuit-breaker.md)

### 超时&重试

[超时&重试详解](./docs/high-availability/timeout-and-retry.md)

### 集群

相同的服务部署多份，避免单点故障。

### 灾备设计和异地多活

**灾备** = 容灾 + 备份。

- **备份**：将系统所产生的所有重要数据多备份几份。
- **容灾**：在异地建立两个完全相同的系统。当某个地方的系统突然挂掉，整个应用系统可以切换到另一个，这样系统就可以正常提供服务了。

**异地多活** 描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”，即所有站点都是同时在对外提供服务的。异地多活是为了应对突发状况比如火灾、地震等自然或者人为灾害。

## Star 趋势

![Stars](https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&type=Date)

## 公众号

如果大家想要实时关注我更新的文章以及分享的干货的话，可以关注我的公众号。

<img src="https://oss.javaguide.cn/github/javaguide/gongzhonghao-javaguide.png" alt="JavaGuide 公众号"  style="zoom: 43%; display: block; margin: 0 auto;" />

<!-- #endregion home -->
