NATS server, a high-performance messaging system for connecting services, devices and edge systems, part of the CNCF.
doocs/advanced-java
Interview prep knowledge base for Java backend developers: concurrency, distributed systems, microservices, big data.
- Stars
- 79,159
- Forks
- 19,111
- Open issues
- 0
- Last commit
- 5 days ago
What is it?
A curated knowledge base and interview question collection for experienced Java backend developers. It is organized into five sections: high-concurrency architecture, distributed systems, high availability, microservices, and large-scale data processing, covering message queues, search engines, caching, sharding, and read-write splitting.
The high-concurrency section compares Kafka, ActiveMQ, RabbitMQ and RocketMQ, and discusses idempotent consumption, reliable delivery, message ordering and backlog handling. Caching topics revolve around Redis: thread model, data types, persistence, master-slave replication, sentinel and cluster modes, plus cache avalanche, penetration and breakdown.
Distributed and microservice topics include Dubbo internals, serialization protocols, load balancing and service governance, Redis versus Zookeeper distributed locks, distributed transactions and sessions, and Hystrix thread-pool isolation, circuit breaking, fallback and timeouts. The big-data section walks through TopK, deduplication and median-finding problems. A 283-page offline PDF is also provided.
Key features
- 01Content is grouped into five sections: high concurrency, distributed systems, high availability, microservices, and big-data processing.
- 02Each question covers a concrete component such as message queues, Redis, Elasticsearch, Dubbo or Hystrix.
- 03Includes technology selection comparisons, for example Kafka vs ActiveMQ vs RabbitMQ vs RocketMQ, and Sentinel vs Hystrix.
- 04A 283-page offline PDF of the material is available for reading away from GitHub.
- 05Written entirely in Chinese Markdown files that can be browsed on GitHub or the documentation site.
Use cases
- Preparing for Java backend interviews by reviewing one topic area at a time.
- Looking up caching, sharding and rate-limiting approaches when designing a high-concurrency system.
- Comparing middleware and frameworks during distributed or microservice technology selection.
- Reviewing the internals and common failure modes of Redis, message queues and Dubbo.
Quick start
- 1
Read the knowledge base online on GitHub, no install needed
- 2
Browse the topic index starting from the high-concurrency section
Things to know
- Content is interview-prep notes, not runnable software or a code library.
- Most material is in Simplified Chinese.
- Parts of the microservices section are incomplete, with placeholder entries.
In collections
Topics
FAQ
- What is advanced-java?
- Interview prep knowledge base for Java backend developers: concurrency, distributed systems, microservices, big data. A curated knowledge base and interview question collection for experienced Java backend developers. It is organized into five sections: high-concurrency architecture, distributed systems, high availability, microservices, and large-scale data processing, covering message queues, search engines, caching, sharding, and read-write splitting.
- Is advanced-java free to use? What license does it have?
- advanced-java is open source under the CC-BY-SA-4.0 license. Check the license terms before using it in commercial products.
- Is advanced-java still maintained?
- Actively maintained. The last commit to advanced-java was on Oct 19, 2026.
- What can I use advanced-java for?
- Preparing for Java backend interviews by reviewing one topic area at a time. Looking up caching, sharding and rate-limiting approaches when designing a high-concurrency system. Comparing middleware and frameworks during distributed or microservice technology selection. Reviewing the internals and common failure modes of Redis, message queues and Dubbo.
- How do I install advanced-java?
- Read the knowledge base online on GitHub, no install needed Browse the topic index starting from the high-concurrency section
- Where can I get advanced-java?
- The source code and installation instructions are on GitHub: https://github.com/doocs/advanced-java
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A free, humorous Chinese-language Java learning guide covering core Java, concurrency, JVM, enterprise development, and interview prep.
Open-source platform for dynamic service discovery, dynamic configuration management, and service metadata management in cloud native and microservice systems.
A Chinese-language Java backend interview guide covering CS fundamentals, databases, distributed systems, system design and AI application development.
An in-memory data store used as a cache, data structure server, document store, vector database, and message broker.
NSQ is a realtime distributed messaging platform designed to handle very high message volumes without a single point of failure.