TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.37K subscribers
Post #7749 802

Forwarded from Типичный программист

15 основ проектирования систем + полезные материалы

Балансировщик нагрузки (Load Balancer) — Распределяет входящий трафик между несколькими серверами, чтобы ни один из них не был перегружен. Повышает отказоустойчивость, доступность и уменьшает время отклика.

API Gateway
— Единая точка входа для всех клиентских запросов в микросервисной архитектуре. Обеспечивает маршрутизацию, аутентификацию, лимиты по частоте, агрегацию запросов.

DNS (Domain Name System)
— Преобразует человеко-читаемые доменные имена в IP-адреса, необходимые для маршрутизации трафика.

Кэш (Cache) — Хранит часто используемые данные в оперативной памяти для ускорения доступа и уменьшения нагрузки на базу данных.

CDN (Content Delivery Network)
— Доставляет статический контент (картинки, CSS, JavaScript и пр.) с серверов, расположенных ближе к пользователям. Снижает задержки и расход полосы пропускания, особенно при работе по всему миру.

База данных (Database)
— Основное хранилище данных. Может быть SQL или NoSQL, поддерживает структурированные запросы, индексацию, транзакции и долговечность данных.

API — Определяет, как сервисы обмениваются данными (обычно через HTTP или gRPC). Обеспечивает модульность и чистое разделение ответственности.

Микросервисы (Microservices) — Делят монолитное приложение на независимые сервисы. Повышают гибкость, позволяют лучше изолировать ошибки и масштабировать отдельные компоненты.

Ограничение частоты запросов (Rate Limiter) — Контролирует максимальное количество запросов, которые может сделать пользователь или сервис за определённый промежуток времени. Защищает API от злоупотреблений и обеспечивает справедливое распределение ресурсов.

Объектное хранилище (Object Storage) — Сохраняет большие блобы (файлы, видео, резервные копии) с высокой доступностью и долговечностью. Примеры — AWS S3, Google Cloud Storage.

Очередь сообщений (Message Queue)
— Позволяет сервисам асинхронно обмениваться сообщениями через очередь (например, Kafka, RabbitMQ). Помогает "развязать" системы и справляться с пиковыми нагрузками.

Шардирование (Sharding)
— Разделяет большие объёмы данных на части по разным базам или таблицам. Способствует масштабированию и ускоряет выполнение запросов.

Репликация (Replication) — Копирует данные с одного узла БД на другие. Повышает отказоустойчивость и ускоряет выполнение запросов на чтение.

Последовательное хеширование — Техника распределения данных по узлам так, чтобы при увеличении или уменьшении числа узлов происходило минимальное перераспределение данных. Используется в распределенных кэширующих и хранилищах.

Мониторинг (Monitoring System)
— Следит за состоянием системы, собирает логи/метрики, оповещает об авариях и отклонениях. Критически важен для контроля, отладки и поддержания работоспособности.


Сохраняем и не забываем, что у вас есть такое золото 😅
  • 👍 2
  • ❤ 1
More from @a_cup_of_java
  1. Sep 30, 2026Как подтвердить взаимную блокировку по дампу потоков Java Если JVM перестала выполнять раб…
  2. Sep 29, 2026Spring Boot 4: настраиваем экспорт логов, метрик и трассировок через OpenTelemetry В Sprin…
  3. Sep 29, 2026DAGP 3.5.0 проверяет бинарную совместимость дубликатов классов в Gradle Если два JAR содер…
  4. Sep 29, 2026Как защитить REST API в Spring Boot от несовместимых изменений В Spring Boot обновление Ja…
  5. Sep 28, 2026JDK 26: когда автовекторизации JIT мало и нужен Vector API JIT превращает циклы Java в SIM…
  6. Sep 28, 2026JDK 25: как передавать контекст запроса через ScopedValue В JDK 25 ScopedValue стал постоя…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →