TGViewer
Системный Аналитик Системный Аналитик @sys_sa · 19.1K subscribers
Post #309 15.7K
Способы обеспечения работы высоконагруженных систем


1️⃣ Инфраструктура

💩Вертикальное масштабирование — увеличение производительности серверов (увеличение RAM, добавление дисков, более мощных СPU и т.д.). Самый простой способ, однако он довольно быстро упирается в потолок
💩Горизонтальное масштабирование — добавление дополнительных серверов (или виртуальных копий сервиса — реплик) для распределения нагрузки между ними. Это работает примерно так же, как в реальной жизни: если один рабочий выкопает яму за 4 часа, то двое рабочих сделают это быстрее (но не факт, что в 2 раза)
💩Балансировка нагрузки — актуально при горизонтальном масштабировании, когда используется несколько серверов или реплик приложения. Балансировка помогает распределить загрузку между сервисами равномерно


2️⃣ Хранение и доступ к данным

💩Кэширование — сохранение часто запрашиваемых данных в памяти для быстрого доступа. Подробнее см. в этом посте
💩Индексы — дополнительная структура данных в реляционных БД для ускорения поиска и обработки записей. Это подобно алфавитному указателю в англо-русском словарике: не нужно листать весь словарь, достаточно лишь открыть страницы с нужным сочетанием букв. Подробнее в этом посте
💩Денормализация — введение избыточности в таблицах и представлениях, чтобы сократить число запросов к БД и тем самым минимизировать время обработки запросов. Вместо того, чтобы делать кучу джойнов с группировками и вычисляемыми полями, можно завести представление (вью), которая будет содержать все нужные данные, хотя она не будет соблюдать 3 нормальных формы
💩Репликация — копирование одних и тех же данных между разными серверами. При использовании такого метода выделяют два типа серверов: master и slave. Мастер используется для записи или изменения информации, слейвы — для копирования информации с мастера и её чтения. Эффект достигается за счёт повышения отзазоустойчивости и разделения операций чтения и записи
💩Партиционирование — разделение таблиц на несколько частей в рамках одного сервера. Позволяет увеличить производительность за счёт уменьшения объема данных, которые нужно обрабатывать при выполнении запросов. Подробнее в этом посте
💩Шардирование — техника масштабирования БД, когда данные разносятся по нескольким машинам. Разделение данных эффективно, когда для разных запросов требуются разные данные некогда единой таблицы. Подробнее в этом посте


3️⃣ Приложения

Проектирование архитектуры приложений
💩DDD (Domain-Driven Design) — подход к проектированию архитектуры, при котором приложение разделяется на функциональные домены на основе того, как работает реальный бизнес. DDD помогает создавать более устойчивые и масштабируемые системы. Подробнее в этом посте
💩CQRS (Command Query Responsibility Segregation) — подход, при котором система разделяется на две части: одна отвечает за обработку команд (изменения состояния), а другая — за запросы (чтение данных). Команды и запросы могут быть масштабированы независимо, что позволяет системе более эффективно обрабатывать большое количество RPC. Подробнее в этом посте
💩CDC (Change Data Capture) — техника, используемая для определения и отслеживания изменений в данных. Очень полезно, когда нужно в режиме реального времени реагировать на изменения в базе-источнике. Подробнее

Интеграции
💩Брокеры сообщений — помогают обрабатывать тысячи запросов с гарантией доставки сообщений. Подробнее тут.
💩Использование gRPC — более производительный стиль интеграции, который под капотом использует HTTP/2 для транспорта и Protocol Buffers для сериализации данных. В этом посте подробнее.
💩Веб-сокеты — вместо множества запросов для обновления данных, веб-сокеты позволяют поддерживать постоянное соединение, через которое данные могут передаваться в обе стороны в реальном времени. Подробнее здесь.

Оптимизация кода
💩Распараллеливание запросов
💩Минимизация сериализации данных
💩Оптимизация запросов к БД
💩Управление HTTP-сессиями и использование возможностей TCP

⭐️ Подборка материалов доступна в базе знаний по системному анализу

#проектирование
  • 👍 32
  • 🔥 13
  • ❤ 8
More from @sys_sa
  1. Sep 28, 2026🔼AMQP, MQTT и STOMP: протоколы обмена сообщениями AMQP, MQTT и STOMP — независимые проток…
  2. Sep 26, 2026Как облегчить работу ИТ-аналитика уже сейчас — без долгосрочных перестроек процессов? Обсу…
  3. Aug 28, 2026❓ ICAM (Incident Cause Analysis Method) ICAM (Incident Cause Analysis Method) — метод разб…
  4. Aug 19, 2026🖥 NewSQL NewSQL — класс реляционных СУБД, который совмещает привычный SQL и строгие ACID…
  5. Jul 14, 2026🔼 Server Driven UI (SDUI) Server Driven UI (SDUI) — архитектурный подход, при котором сер…
  6. Jul 7, 2026📊 Сравнение Баз данных и Хранилищ данных ▫️База данных – оперативное хранилище, где содер…
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 →