Об этом проекте
Этот проект представляет собой набор знаний для инженеров Java, работающих в интернете, и охватывает пять ключевых областей: высоконагруженные архитектуры, распределённые системы, отказоустойчивые решения, микросервисную архитектуру и обработку массивов данных.
В разделе о высоконагруженных архитектурах подробно рассматриваются брокеры сообщений (Kafka, ActiveMQ, RabbitMQ, RocketMQ — их преимущества, недостатки, высокая доступность, идемпотентность и надёжная доставка), поисковые движки (распределённая архитектура Elasticsearch, принципы чтения/записи, оптимизация запросов и деплой продакшен-кластеров), кэширование (Redis — модель потоков, типы данных, стратегии инвалидации, репликация, режимы кластера, механизмы сохранения данных, проблемы кэш-стакана, просачивания и пробития, консистентность при двойной записи), а также шардирование баз данных, выборmiddleware, динамическое масштабирование, генерация глобальных ID, репликация чтения-записи и проектирование высоконагруженных систем в целом.
Распределённые системы включают темы разделения архитектуры, принципов работы Dubbo и протоколов сериализации, балансировки нагрузки и отказоустойчивости кластеров, концепции SPI, управления сервисами и деградации, идемпотентности и упорядоченности API, проектирования RPC-фреймворков, теоремы CAP, распределённых блокировок (сравнение Redis и Zookeeper), распределённых транзакций и сессий.
Отказоустойчивые архитектуры строятся вокруг Hystrix и охватывают изоляцию через пулы потоков, механизмы семафоров, кэширование запросов, деградацию через Fallback, принцип работыircuit breakers, ограничение трафика и защиту от таймаутов. Также рассматриваются подходы к rate limiting, circuit breaking (выбор между Sentinel и Hystrix) и стратегии деградации.
В части микросервисов описывается переход от монолитной к микросервисной архитектуре, управление данными через событийно-ориентированный подход, стратегии деплоя, различия между Spring Cloud и Dubbo, а также механизмы обнаружения сервисов на базе Eureka.
Раздел обработки больших данных сосредоточен на практических алгоритмах для масштабных сценариев: поиск одинаковых URL, определение наиболее частотных слов и IP-адресов, вычисление медианы, решение задачи TopK и другие типовые шаблоны.
Проект также предоставляет PDF-документацию (283 страницы) и связан с проектами сообщества Doocs по leetcode, анализу исходного кода и принципам работы JVM.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.