Recommended to read through online reading platforms for better experience and faster speed! Link: [javaguide.cn](https://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>

> - **Interview Edition**: Candidates preparing for Java interviews can consider the **[《Java Interview Guide》](./docs/zhuanlan/java-mian-shi-zhi-bei.md)** (high quality, specially designed for interviews, to be used with JavaGuide).
> - **Knowledge Planet**: Exclusive interview mini-books/one-on-one communication/resume modification/exclusive job-seeking guide, welcome to join **[JavaGuide Knowledge Planet](./docs/about-the-author/zhishixingqiu-two-years.md)** (click the link to view the detailed introduction of the planet, make sure you really need it before joining).
> - **Usage Suggestion**: Experienced interviewers always dig into technical issues along the project experience. Definitely do not memorize technical articles! For detailed learning suggestions, please refer to: [JavaGuide Usage Suggestion](./docs/javaguide/use-suggestion.md).
> - **Seek a Star**: If you find the content of JavaGuide helpful, please give a free Star, which is the greatest encouragement to me. Thank you all for walking together and striving together! Github link: [https://github.com/Snailclimb/JavaGuide](https://github.com/Snailclimb/JavaGuide).
> - **Reprint Notice**: All the following articles are original creations of JavaGuide unless stated otherwise at the beginning. Please indicate the source when reprinting. If malicious plagiarism/copying is discovered, legal weapons will be used to safeguard our rights. Let's together maintain a good technical creation environment!

<div align="center">
  <img src="https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png" style="margin: 0 auto;" />  
</div>

<!-- #region home -->

## Project-related

- [Project Introduction](https://javaguide.cn/javaguide/intro.html)
- [Usage Suggestion](https://javaguide.cn/javaguide/use-suggestion.html)
- [Contribution Guide](https://javaguide.cn/javaguide/contribution-guideline.html)
- [FAQ](https://javaguide.cn/javaguide/faq.html)

## Java

### Basics

**Knowledge Points/Interview Questions Summary** : (Must-see:+1:):

- [Summary of Common Java Basics Knowledge Points & Interview Questions (Part 1)](./docs/java/basis/java-basic-questions-01.md)
- [Summary of Common Java Basics Knowledge Points & Interview Questions (Part 2)](./docs/java/basis/java-basic-questions-02.md)
- [Summary of Common Java Basics Knowledge Points & Interview Questions (Part 3)](./docs/java/basis/java-basic-questions-03.md)

**Important Knowledge Points Explanation**:

- [Why is There Only Pass-by-Value in Java?](./docs/java/basis/why-there-only-value-passing-in-java.md)
- [Serialization in Java Explained](./docs/java/basis/serialization.md)
- [Generics & Wildcards Explained](./docs/java/basis/generics-and-wildcards.md)
- [Java Reflection Mechanism Explained](./docs/java/basis/reflection.md)
- [Java Proxy Pattern Explained](./docs/java/basis/proxy.md)
- [BigDecimal Explained](./docs/java/basis/bigdecimal.md)
- [Java Magic Class Unsafe Explained](./docs/java/basis/unsafe.md)
- [Java SPI Mechanism Explained](./docs/java/basis/spi.md)
- [Java Syntactic Sugar Explained](./docs/java/basis/syntactic-sugar.md)

### Collections

**Knowledge Points/Interview Questions Summary**:

- [Summary of Common Java Collection Knowledge Points & Interview Questions (Part 1)](./docs/java/collection/java-collection-questions-01.md) (Must-see :+1:)
- [Summary of Common Java Collection Knowledge Points & Interview Questions (Part 2)](./docs/java/collection/java-collection-questions-02.md) (Must-see :+1:)
- [Summary of Java Container Usage Precautions](./docs/java/collection/java-collection-precautions-for-use.md)

**Source Code Analysis**:

- [ArrayList Core Source Code + Expansion Mechanism Analysis](./docs/java/collection/arraylist-source-code.md)
- [LinkedList Core Source Code Analysis](./docs/java/collection/linkedlist-source-code.md)
- [HashMap Core Source Code + Underlying Data Structure Analysis](./docs/java/collection/hashmap-source-code.md)

# Java Collection & Concurrency Series

## Collection

- [ConcurrentHashMap Core Source Code + Underlying Data Structure Analysis](./docs/java/collection/concurrent-hash-map-source-code.md)
- [LinkedHashMap Core Source Code Analysis](./docs/java/collection/linkedhashmap-source-code.md)
- [CopyOnWriteArrayList Core Source Code Analysis](./docs/java/collection/copyonwritearraylist-source-code.md)
- [ArrayBlockingQueue Core Source Code Analysis](./docs/java/collection/arrayblockingqueue-source-code.md)
- [PriorityQueue Core Source Code Analysis](./docs/java/collection/priorityqueue-source-code.md)
- [DelayQueue Core Source Code Analysis](./docs/java/collection/delayqueue-source-code.md)

### IO

- [IO Basic Knowledge Summary](./docs/java/io/io-basis.md)
- [IO Design Patterns Summary](./docs/java/io/io-design-patterns.md)
- [IO Model Explanation](./docs/java/io/io-model.md)
- [NIO Core Knowledge Summary](./docs/java/io/nio-basis.md)

### Concurrency

**Knowledge Points/Interview Questions Summary** : (Must-read :+1:)

- [Common Java Concurrency Knowledge Points & Interview Questions Summary (Part 1)](./docs/java/concurrent/java-concurrent-questions-01.md)
- [Common Java Concurrency Knowledge Points & Interview Questions Summary (Part 2)](./docs/java/concurrent/java-concurrent-questions-02.md)
- [Common Java Concurrency Knowledge Points & Interview Questions Summary (Part 3)](./docs/java/concurrent/java-concurrent-questions-03.md)

**Important Knowledge Points Explanation**:

- [Optimistic Lock and Pessimistic Lock Explanation](./docs/java/concurrent/optimistic-lock-and-pessimistic-lock.md)
- [CAS Explanation](./docs/java/concurrent/cas.md)
- [JMM (Java Memory Model) Explanation](./docs/java/concurrent/jmm.md)
- **Thread Pool**: [Java Thread Pool Explanation](./docs/java/concurrent/java-thread-pool-summary.md), [Java Thread Pool Best Practices](./docs/java/concurrent/java-thread-pool-best-practices.md)
- [ThreadLocal Explanation](./docs/java/concurrent/threadlocal.md)
- [Java Concurrent Collections Summary](./docs/java/concurrent/java-concurrent-collections.md)
- [Atomic Classes Summary](./docs/java/concurrent/atomic-classes.md)
- [AQS Explanation](./docs/java/concurrent/aqs.md)
- [CompletableFuture Explanation](./docs/java/concurrent/completablefuture-intro.md)

### JVM (Must-read :+1:)

The JVM part mainly refers to the [JVM Specification - Java 8](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) and Zhong Zhiming's book [《Deep Understanding of Java Virtual Machine (3rd Edition)》](https://book.douban.com/subject/34907497/) (strongly recommend to read it several times!).

- **[Java Memory Area](./docs/java/jvm/memory-area.md)**
- **[JVM Garbage Collection](./docs/java/jvm/jvm-garbage-collection.md)**
- [Class File Structure](./docs/java/jvm/class-file-structure.md)
- **[Class Loading Process](./docs/java/jvm/class-loading-process.md)**
- [Class Loader](./docs/java/jvm/classloader.md)
- [【To Be Completed】Most Important JVM Parameters Summary (Half Translated)](./docs/java/jvm/jvm-parameters-intro.md)
- [【Bonus】Understand JVM in Plain Language](./docs/java/jvm/jvm-intro.md)
- [JDK Monitoring and Troubleshooting Tools](./docs/java/jvm/jdk-monitoring-and-troubleshooting-tools.md)

### New Features

- **Java 8**: [Java 8 New Features Summary (Translated)](./docs/java/new-features/java8-tutorial-translate.md), [Common Java 8 New Features Summary](./docs/java/new-features/java8-common-new-features.md)
- [Java 9 New Features Overview](./docs/java/new-features/java9.md)
- [Java 10 New Features Overview](./docs/java/new-features/java10.md)
- [Java 11 New Features Overview](./docs/java/new-features/java11.md)
- [Java 12 & 13 New Features Overview](./docs/java/new-features/java12-13.md)
- [Java 14 & 15 New Features Overview](./docs/java/new-features/java14-15.md)
- [Java 16 New Features Overview](./docs/java/new-features/java16.md)
- [Java 17 New Features Overview](./docs/java/new-features/java17.md)
- [Java 18 New Features Overview](./docs/java/new-features/java18.md)
- [Java 19 New Features Overview](./docs/java/new-features/java19.md)
- [Java 20 New Features Overview](./docs/java/new-features/java20.md)

# Overview of Java 21, 22, 23, 24, and 25 New Features

## Computer Fundamentals

### Operating Systems

- [Summary of Common Operating System Knowledge Points & Interview Questions (Part 1)](./docs/cs-basics/operating-system/operating-system-basic-questions-01.md)
- [Summary of Common Operating System Knowledge Points & Interview Questions (Part 2)](./docs/cs-basics/operating-system/operating-system-basic-questions-02.md)
- **Linux**:
  - [Summary of Essential Linux Basics for Backend Developers](./docs/cs-basics/operating-system/linux-intro.md)
  - [Summary of Shell Scripting Basics](./docs/cs-basics/operating-system/shell-intro.md)

### Networking

**Knowledge Points/Interview Questions Summary**:

- [Summary of Common Computer Network Knowledge Points & Interview Questions (Part 1)](./docs/cs-basics/network/other-network-questions.md)
- [Summary of Common Computer Network Knowledge Points & Interview Questions (Part 2)](./docs/cs-basics/network/other-network-questions2.md)
- [Summary of Professor Xie Xiren's "Computer Network" Content (Supplementary)](./docs/cs-basics/network/computer-network-xiexiren-summary.md)

**Important Concept Explanations**:

- [Detailed Explanation of the OSI and TCP/IP Network Layer Models (Basics)](./docs/cs-basics/network/osi-and-tcp-ip-model.md)
- [Summary of Common Application Layer Protocols (Application Layer)](./docs/cs-basics/network/application-layer-protocol.md)
- [HTTP vs HTTPS (Application Layer)](./docs/cs-basics/network/http-vs-https.md)
- [HTTP 1.0 vs HTTP 1.1 (Application Layer)](./docs/cs-basics/network/http1.0-vs-http1.1.md)
- [Common HTTP Status Codes (Application Layer)](./docs/cs-basics/network/http-status-codes.md)
- [Detailed Explanation of the DNS Domain Name System (Application Layer)](./docs/cs-basics/network/dns.md)
- [TCP Three-Way Handshake and Four-Way Termination (Transport Layer)](./docs/cs-basics/network/tcp-connection-and-disconnection.md)
- [TCP Transmission Reliability Guarantee (Transport Layer)](./docs/cs-basics/network/tcp-reliability-guarantee.md)
- [Detailed Explanation of the ARP Protocol (Network Layer)](./docs/cs-basics/network/arp.md)
- [Detailed Explanation of the NAT Protocol (Network Layer)](./docs/cs-basics/network/nat.md)
- [Summary of Common Network Attack Means (Security)](./docs/cs-basics/network/network-attack-means.md)

### Data Structures

**Illustrated Data Structures:**

- [Linear Data Structures: Arrays, Linked Lists, Stacks, Queues](./docs/cs-basics/data-structure/linear-data-structure.md)
- [Graphs](./docs/cs-basics/data-structure/graph.md)
- [Heaps](./docs/cs-basics/data-structure/heap.md)
- [Trees](./docs/cs-basics/data-structure/tree.md): Focus on [Red-Black Trees](./docs/cs-basics/data-structure/red-black-tree.md), B-, B+, B\* Trees, and LSM Trees

Other Commonly Used Data Structures:

- [Bloom Filters](./docs/cs-basics/data-structure/bloom-filter.md)

### Algorithms

The algorithm part is very important. If you don't know how to learn algorithms, you can refer to:

- [Recommended Algorithm Learning Books and Resources](https://www.zhihu.com/question/323359308/answer/1545320858).
- [How to Solve LeetCode Problems?](https://www.zhihu.com/question/31092580/answer/1534887374)

**Summary of Common Algorithm Problems**:

- [Summary of Several Common String Algorithm Problems](./docs/cs-basics/algorithms/string-algorithm-problems.md)
- [Summary of Several Common Linked List Algorithm Problems](./docs/cs-basics/algorithms/linkedlist-algorithm-problems.md)
- [Part of the Coding Questions from the "Sword Refers to Offer"](./docs/cs-basics/algorithms/the-sword-refers-to-offer.md)
- [Ten Classic Sorting Algorithms](./docs/cs-basics/algorithms/10-classical-sorting-algorithms.md)

Additionally, [GeeksforGeeks](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) has a comprehensive summary of common algorithms.

## Database

### Basics

- [Summary of Database Basics](./docs/database/basis.md)
- [Summary of NoSQL Basics](./docs/database/nosql.md)
- [Explanation of Character Sets](./docs/database/character-set.md)
- SQL:
  - [Summary of SQL Syntax Basics](./docs/database/sql/sql-syntax-summary.md)
  - [Summary of Common SQL Interview Questions](./docs/database/sql/sql-questions-01.md)

### MySQL

**Knowledge Points/Interview Questions Summary:**

# MySQL Common Knowledge Points & Interview Questions Summary (Must-Read :+1:)

- [MySQL Common Knowledge Points & Interview Questions Summary](./docs/database/mysql/mysql-questions-01.md)
- [MySQL High-Performance Optimization Specification Recommendations](./docs/database/mysql/mysql-high-performance-optimization-specification-recommendations.md)

**Important Knowledge Points:**

- [MySQL Index Details](./docs/database/mysql/mysql-index.md)
- [Detailed Explanation of MySQL Transaction Isolation Levels (with Pictures)](./docs/database/mysql/transaction-isolation-level.md)
- [Detailed Explanation of MySQL's Three Logs (binlog, redo log, and undo log)](./docs/database/mysql/mysql-logs.md)
- [InnoDB Storage Engine's Implementation of MVCC](./docs/database/mysql/innodb-implementation-of-mvcc.md)
- [How SQL Statements are Executed in MySQL](./docs/database/mysql/how-sql-executed-in-mysql.md)
- [Detailed Explanation of MySQL Query Cache](./docs/database/mysql/mysql-query-cache.md)
- [MySQL Query Execution Plan Analysis](./docs/database/mysql/mysql-query-execution-plan.md)
- [Are MySQL Auto-Increment Primary Keys Always Continuous?](./docs/database/mysql/mysql-auto-increment-primary-key-continuous.md)
- [Suggestions on Storing Time-Related Data in Databases](./docs/database/mysql/some-thoughts-on-database-storage-time.md)
- [Index Invalidation Caused by Implicit Conversion in MySQL](./docs/database/mysql/index-invalidation-caused-by-implicit-conversion.md)

### Redis

**Knowledge Points/Interview Questions Summary** (Must-Read :+1:):

- [Redis Common Knowledge Points & Interview Questions Summary (Part 1)](./docs/database/redis/redis-questions-01.md)
- [Redis Common Knowledge Points & Interview Questions Summary (Part 2)](./docs/database/redis/redis-questions-02.md)

**Important Knowledge Points:**

- [Detailed Explanation of 3 Common Cache Read and Write Strategies](./docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md)
- [Can Redis Be Used as a Message Queue? How to Implement It?](./docs/database/redis/redis-stream-mq.md)
- [Detailed Explanation of Redis' 5 Basic Data Structures](./docs/database/redis/redis-data-structures-01.md)
- [Detailed Explanation of Redis' 3 Special Data Structures](./docs/database/redis/redis-data-structures-02.md)
- [Detailed Explanation of Redis Persistence Mechanism](./docs/database/redis/redis-persistence.md)
- [Detailed Explanation of Redis Memory Fragmentation](./docs/database/redis/redis-memory-fragmentation.md)
- [Summary of Common Causes of Redis Blocking](./docs/database/redis/redis-common-blocking-problems-summary.md)
- [Detailed Explanation of Redis Cluster](./docs/database/redis/redis-cluster.md)

### MongoDB

- [MongoDB Common Knowledge Points & Interview Questions Summary (Part 1)](./docs/database/mongodb/mongodb-questions-01.md)
- [MongoDB Common Knowledge Points & Interview Questions Summary (Part 2)](./docs/database/mongodb/mongodb-questions-02.md)

## Search Engines

[Elasticsearch Common Interview Questions Summary (Paid)](./docs/database/elasticsearch/elasticsearch-questions-01.md)

![JavaGuide Official Public Account](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)

## Development Tools

### Maven

- [Maven Core Concepts Summary](./docs/tools/maven/maven-core-concepts.md)
- [Maven Best Practices](./docs/tools/maven/maven-best-practices.md)

### Gradle

[Gradle Core Concepts Summary](./docs/tools/gradle/gradle-core-concepts.md) (Optional, Maven is still more widely used in China)

### Docker

- [Docker Core Concepts Summary](./docs/tools/docker/docker-intro.md)
- [Docker in Action](./docs/tools/docker/docker-in-action.md)

### Git

- [Git Core Concepts Summary](./docs/tools/git/git-intro.md)
- [Useful GitHub Tips Summary](./docs/tools/git/github-tips.md)

## System Design

- [Common System Design Interview Questions Summary](./docs/system-design/system-design-questions.md)
- [Common Design Pattern Interview Questions Summary](./docs/system-design/design-pattern.md)

### Basics

- [A Brief Tutorial on RESTful API](./docs/system-design/basis/RESTfulAPI.md)
- [A Brief Tutorial on Software Engineering](./docs/system-design/basis/software-engineering.md)
- [Code Naming Guide](./docs/system-design/basis/naming.md)
- [Code Refactoring Guide](./docs/system-design/basis/refactoring.md)
- [Unit Testing Guide](./docs/system-design/basis/unit-test.md)

### Common Frameworks

#### Spring/SpringBoot (Must-Read :+1:)

**Knowledge Points/Interview Questions Summary**:

- [Summary of Common Spring Knowledge Points and Interview Questions](./docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md)
- [Summary of Common SpringBoot Knowledge Points and Interview Questions](./docs/system-design/framework/spring/springboot-knowledge-and-questions-summary.md)
- [Summary of Common Spring/SpringBoot Annotations](./docs/system-design/framework/spring/spring-common-annotations.md)
- [SpringBoot Beginner's Guide](https://github.com/Snailclimb/springboot-guide)

**Detailed Explanation of Important Knowledge Points**:

- [Detailed Explanation of IoC & AOP (Quick Understanding)](./docs/system-design/framework/spring/ioc-and-aop.md)
- [Detailed Explanation of Spring Transactions](./docs/system-design/framework/spring/spring-transaction.md)
- [Detailed Explanation of Design Patterns in Spring](./docs/system-design/framework/spring/spring-design-patterns-summary.md)
- [Detailed Explanation of SpringBoot Auto-Configuration Principles](./docs/system-design/framework/spring/spring-boot-auto-assembly-principles.md)

#### MyBatis

[Summary of Common MyBatis Interview Questions](./docs/system-design/framework/mybatis/mybatis-interview.md)

### Security

#### Authentication and Authorization

- [Detailed Explanation of Authentication and Authorization Fundamentals](./docs/system-design/security/basis-of-authority-certification.md)
- [Detailed Explanation of JWT Basics](./docs/system-design/security/jwt-intro.md)
- [Analysis of Advantages and Disadvantages of JWT and Common Problem Solutions](./docs/system-design/security/advantages-and-disadvantages-of-jwt.md)
- [Detailed Explanation of SSO (Single Sign-On)](./docs/system-design/security/sso-intro.md)
- [Detailed Explanation of Permission System Design](./docs/system-design/security/design-of-authority-system.md)

#### Data Security

- [Summary of Common Encryption Algorithms](./docs/system-design/security/encryption-algorithms.md)
- [Summary of Sensitive Word Filtering Solutions](./docs/system-design/security/sentive-words-filter.md)
- [Summary of Data Desensitization Solutions](./docs/system-design/security/data-desensitization.md)
- [Why Both Front-end and Back-end Need to Perform Data Validation](./docs/system-design/security/data-validation.md)

### Scheduled Tasks

[Detailed Explanation of Java Scheduled Tasks](./docs/system-design/schedule-task.md)

### Web Real-time Message Pushing

[Detailed Explanation of Web Real-time Message Pushing](./docs/system-design/web-real-time-message-push.md)

## Distributed System

### Theory, Algorithms, and Protocols

- [Interpretation of CAP Theory and BASE Theory](https://javaguide.cn/distributed-system/protocol/cap-and-base-theorem.html)
- [Interpretation of Paxos Algorithm](https://javaguide.cn/distributed-system/protocol/paxos-algorithm.html)
- [Interpretation of Raft Algorithm](https://javaguide.cn/distributed-system/protocol/raft-algorithm.html)
- [Detailed Explanation of Gossip Protocol](https://javaguide.cn/distributed-system/protocol/gossip-protocol.html)
- [Detailed Explanation of Consistent Hashing Algorithm](https://javaguide.cn/distributed-system/protocol/consistent-hashing.html)

### RPC

- [Summary of RPC Basics](https://javaguide.cn/distributed-system/rpc/rpc-intro.html)
- [Summary of Common Dubbo Knowledge Points and Interview Questions](https://javaguide.cn/distributed-system/rpc/dubbo.html)

### ZooKeeper

> These two articles may have some overlapping content, it is recommended to read both.

- [Summary of ZooKeeper Relevant Concepts (Beginner)](https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.html)
- [Summary of ZooKeeper Relevant Concepts (Advanced)](https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.html)

### API Gateway

- [Summary of API Gateway Basics](https://javaguide.cn/distributed-system/api-gateway.html)
- [Summary of Common Spring Cloud Gateway Knowledge Points and Interview Questions](./docs/distributed-system/spring-cloud-gateway-questions.md)

### Distributed ID

- [Introduction to Distributed ID and Summary of Implementation Solutions](https://javaguide.cn/distributed-system/distributed-id.html)
- [Design Guide for Distributed ID](https://javaguide.cn/distributed-system/distributed-id-design.html)

### Distributed Lock

# Distributed Locks

- [Introduction to Distributed Locks](https://javaguide.cn/distributed-system/distributed-lock.html)
- [Summary of Common Distributed Lock Implementation Solutions](https://javaguide.cn/distributed-system/distributed-lock-implementations.html)

### Distributed Transactions

[Summary of Common Distributed Transaction Knowledge Points and Interview Questions](https://javaguide.cn/distributed-system/distributed-transaction.html)

### Distributed Configuration Center

[Summary of Common Distributed Configuration Center Knowledge Points and Interview Questions](./docs/distributed-system/distributed-configuration-center.md)

## High Performance

### Database Optimization

- [Database Read-Write Separation and Database Sharding](./docs/high-performance/read-and-write-separation-and-library-subtable.md)
- [Data Separation of Cold and Hot Data](./docs/high-performance/data-cold-hot-separation.md)
- [Summary of Common SQL Optimization Methods](./docs/high-performance/sql-optimization.md)
- [Introduction to Deep Pagination and Optimization Suggestions](./docs/high-performance/deep-pagination-optimization.md)

### Load Balancing

[Summary of Common Load Balancing Knowledge Points and Interview Questions](./docs/high-performance/load-balancing.md)

### CDN

[Summary of Common CDN (Content Delivery Network) Knowledge Points and Interview Questions](./docs/high-performance/cdn.md)

### Message Queue

- [Summary of Message Queue Basic Knowledge](./docs/high-performance/message-queue/message-queue.md)
- [Summary of Common Disruptor Knowledge Points and Interview Questions](./docs/high-performance/message-queue/disruptor-questions.md)
- [Summary of Common RabbitMQ Knowledge Points and Interview Questions](./docs/high-performance/message-queue/rabbitmq-questions.md)
- [Summary of Common RocketMQ Knowledge Points and Interview Questions](./docs/high-performance/message-queue/rocketmq-questions.md)
- [Summary of Common Kafka Knowledge Points and Interview Questions](./docs/high-performance/message-queue/kafka-questions-01.md)

## High Availability

[Guide to High Availability System Design](./docs/high-availability/high-availability-system-design.md)

### Redundancy Design

[Detailed Explanation of Redundancy Design](./docs/high-availability/redundancy.md)

### Rate Limiting

[Detailed Explanation of Service Rate Limiting](./docs/high-availability/limit-request.md)

### Fallback & Circuit Breaker

[Detailed Explanation of Fallback & Circuit Breaker](./docs/high-availability/fallback-and-circuit-breaker.md)

### Timeout & Retry

[Detailed Explanation of Timeout & Retry](./docs/high-availability/timeout-and-retry.md)

### Clustering

Deploying multiple instances of the same service to avoid single point of failure.

### Disaster Recovery Design and Active-Active Deployment

**Disaster Recovery** = Disaster Tolerance + Backup.

- **Backup**: Backing up all important data generated by the system multiple times.
- **Disaster Tolerance**: Establishing two completely identical systems in different locations. When the system in one location suddenly fails, the entire application system can be switched to the other one, so that the system can continue to provide services normally.

**Active-Active Deployment** describes deploying services in different locations and simultaneously providing services externally. The main difference from traditional disaster recovery design is the "active-active" nature, i.e., all sites are simultaneously providing external services. Active-active deployment is to cope with unexpected situations such as fires, earthquakes and other natural or man-made disasters.

## Star Trend

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

## Official Public Account

If you want to stay up-to-date with my latest articles and share my valuable content, you can follow my official public account.

![JavaGuide Official Public Account](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)
