About this project
This project is a knowledge refresher library tailored for internet Java engineers, with most content sourced from Shi Shan of Zhonghua. It covers five core fields: high-concurrency architecture, distributed systems, high-availability architecture, microservice architecture, and massive data processing.
In the high-concurrency architecture section, the project delves into message queues (covering the pros and cons of Kafka, ActiveMQ, RabbitMQ, and RocketMQ, as well as design considerations for high availability, idempotency, and reliable transmission), search engines (distributed architecture of Elasticsearch, read/write principles, large-scale data query optimization, and production cluster deployment), caching (Redis thread model, data types, expiration strategies, master-slave replication, sentinel clusters, persistence mechanisms, cluster mode, cache avalanche, penetration and breakdown issues, and dual-write consistency), database sharding and table splitting (middleware selection, dynamic scaling up and down, global ID generation), read-write separation, and overall high-concurrency system design.
The distributed systems section covers topics including system splitting, Dubbo working principles and serialization protocols, load balancing and cluster fault tolerance, SPI design philosophy, service governance and degradation, interface idempotency and ordering, RPC framework design, CAP theorem, distributed locks (comparison between Redis and Zookeeper implementations), distributed transactions, and distributed sessions.
Centered on Hystrix, the high-availability architecture section introduces thread pool isolation, semaphore mechanism, request caching, Fallback degradation, circuit breaker principles, interface rate limiting and timeout protection, as well as rate limiting, circuit breaking (selection between Sentinel and Hystrix), and degradation strategies.
The microservice architecture section includes migration from monolithic to microservice architecture, event-driven data management, deployment strategies, differences between Spring Cloud and Dubbo, Eureka service discovery, and other related content.
The massive data processing section focuses on algorithm practice for large-scale data scenarios, including common patterns for problems such as finding identical URLs, high-frequency words, popular IPs, medians, and TopK problems.
The project also provides offline PDF documentation (283 pages), and is linked to related projects in the Doocs community such as leetcode, source code analysis, and JVM principles.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.