Sobre o projeto
Este projeto é uma biblioteca de知识的扫盲进阶面向 engenheiros Java de internet, com conteúdo majoritariamente oriundo de Zhonghua Shikan, abrangendo cinco áreas principais: arquitetura de alta concorrência, sistemas distribuídos, arquitetura de alta disponibilidade, arquitetura de microsserviços e processamento de dados em grande escala.
No que tange à arquitetura de alta concorrência, o projeto explora a fundo filas de mensagem (Kafka, ActiveMQ, RabbitMQ, RocketMQ — vantagens, desvantagens, alta disponibilidade, idempotência, transmissão confiável etc.), motores de busca (arquitetura distribuída do Elasticsearch, princípios de leitura/escrita, otimização de consultas em larga escala e deploy de clusters em produção), caching (modelo de threads do Redis, tipos de dados, estratégias de expiração, replicação master-slave, cluster sentinel, mecanismos de persistência, modo cluster, problemas de avalanche, bypass e hit, consistência de double-write etc.), particionamento de bancos de dados e tabelas (escolha de middleware, expansão e retração dinâmicas, geração de ID global) e design geral de sistemas de alta concorrência.
A parte de sistemas distribuídos abrange decomposição de sistemas, princípios de funcionamento e protocolos de serialização do Dubbo, balanceamento de carga e tolerância a falhas em cluster, conceito SPI, governança de serviços e degradação, idempotência e ordem de interfaces, design de framework RPC, teorema CAP, locks distribuídos (comparação entre Redis e Zookeeper), transações distribuídas e sessões distribuídas.
A seção de alta disponibilidade tem o Hystrix como núcleo, apresentando isolamento por pool de threads, mecanismo de semáforo, cache de requisições, degradação Fallback, princípio do circuit breaker, limitação de taxa e proteção por timeout em interfaces, além de tópicos sobre rate limiting,熔断 (escolha entre Sentinel e Hystrix) e estratégias de degradação.
A área de microsserviços inclui migração de单体 para microsserviços, gerenciamento de dados baseado em eventos, estratégias de deploy, diferenças entre Spring Cloud e Dubbo, descoberta de serviços Eureka e outros conteúdos.
O processamento de dados em grande escala concentra-se em prática algorítmica para cenários de larga escala, como encontrar URLs duplicados, palavras de alta frequência, IPs populares, mediana, problemas TopK e outros padrões comuns.
O projeto também oferece documento PDF offline (283 páginas) e está relacionado a projetos da comunidade Doocs como leetcode, análise de código-fonte e princípios JVM.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.