Sobre el proyecto

Este proyecto es una biblioteca de difusión de conocimientos avanzados dirigida a ingenieros Java de internet, la mayor parte del contenido proviene de Zhonghua Shixi, y cubre cinco áreas centrales: arquitectura de alta concurrencia, sistemas distribuidos, arquitectura de alta disponibilidad, arquitectura de microservicios y procesamiento de grandes volúmenes de datos. En el área de arquitectura de alta concurrencia, el proyecto profundiza en colas de mensajes (ventajas y desventajas de Kafka, ActiveMQ, RabbitMQ y RocketMQ, así como diseños de alta disponibilidad, idempotencia y transmisión confiable), motores de búsqueda (arquitectura distribuida de Elasticsearch, principios de lectura y escritura, optimización de consultas de datos a gran escala y despliegue de clústeres de producción), caché (modelo de hilos de Redis, tipos de datos, estrategias de vencimiento, replicación maestro-esclavo, clúster de centinelas, mecanismo de persistencia, modo de clúster, problemas de avalancha, penetración y ruptura de caché, y consistencia de doble escritura, etc.), división de bases de datos y tablas (selección de middleware, expansión y contracción dinámica, generación de ID global), separación de lectura y escritura y diseño general de sistemas de alta concurrencia. La parte de sistemas distribuidos cubre temas como división de sistemas, principio de funcionamiento de Dubbo y protocolo de serialización, equilibrio de carga y tolerancia a fallos de clúster, idea SPI, gobernanza de servicios y degradación, idempotencia y orden de interfaces, diseño de marco RPC, teorema CAP, bloqueo distribuido (comparación entre Redis y Zookeeper), transacciones distribuidas y sesiones distribuidas. La parte de arquitectura de alta disponibilidad se centra en Hystrix, presenta el aislamiento de grupo de hilos, mecanismo de semáforo, caché de solicitudes, degradación Fallback, principio de interruptor automático, limitación de velocidad de interfaz y protección de tiempo de espera, y también involucra estrategias de limitación de velocidad, interrupción (selección entre Sentinel y Hystrix) y degradación. La parte de arquitectura de microservicios incluye la migración de monolito a microservicios, gestión de datos impulsada por eventos, estrategias de despliegue, diferencias entre Spring Cloud y Dubbo, descubrimiento de servicios Eureka, etc. La parte de procesamiento de grandes volúmenes de datos se centra en la práctica de algoritmos en escenarios de datos a gran escala, como rutinas comunes para buscar URL idénticos, palabras de alta frecuencia, IP populares, mediana, problemas TopK, etc. El proyecto también proporciona documentos PDF sin conexión (283 páginas) y está asociado con proyectos relacionados de la comunidad Doocs como leetcode, análisis de código fuente, principios de JVM, etc.