Горизонтальное масштабирование за счёт добавления новых инстансов сервиса Применение балансировщиков нагрузки (load balancers) Автоматическое масштабирование (auto-scaling), настроенное по метрикам нагрузки…
Отказоустойчивость в Kubernetes Kubernetes — система оркестрации контейнеров, в которой предусмотрены встроенные механизмы отказоустойчивости Для запуска нескольких копий подов применяются ReplicaSets; при сбое…
многопоточность, защита данных выбирать lock-free структуры данных, например ConcurrentHashMap заменять блокировки на атомарные операции (atomic variables), где это возможно сводить критические секции к минимально…
цель: исключить состояния гонки (race conditions) использовать синхронизацию: мьютексы и блокировки (locks) выбирать конкурентные коллекции (ConcurrentHashMap, ConcurrentQueue) по возможности применять атомарные…
Как обеспечить потокобезопасность префиксного дерева? Префиксное дерево — это структура данных для хранения строк, объединённых общей логикой префиксов. Для защиты операций используют мьютексы или read-write lock.…
Как обнаружить "тяжёлые" SQL-запросы без готовых метрик? анализ журналов СУБД (slow query log, general log) исследование плана выполнения с помощью EXPLAIN и EXPLAIN ANALYZE выявление запросов с большим временем…
Обработка ошибок при недоступности внешнего сервиса отказоустойчивость распределённых систем для временных сбоев применяют retry с экспоненциальным увеличением интервала между попытками чтобы не отправлять избыточные…
архитектурный подход к созданию распределённых систем приложение разделяется на самостоятельные сервисы каждый из них выполняет определённую бизнес-задачу сервисы обмениваются данными через строго определённые API…
Как различаются JOIN на уровне множеств JOIN — объединение таблиц по ключевым значениям INNER JOIN — пересечение множеств: возвращаются только общие строки LEFT JOIN — сохраняет все строки слева и дополняет их данными…
Параллельная обработка с ограничением числа горутин контекст: конкурентность в Go задача: контролировать количество одновременно выполняющихся горутин, чтобы рационально расходовать ресурсы решение: применить…
Сопоставление требований к свежести данных с допустимым периодом их устаревания Определение того, насколько часто источник выполняет обновление данных Поиск компромисса между нагрузкой на базу и эффективностью кэша:…