Принципы согласованности БД помимо ACID: CAP и BASE ACID описывает классические гарантии транзакций: атомарность, согласованность, изоляцию и долговечность CAP (Brewer's theorem) рассматривает три свойства:…
Проблемы при добавлении индекса на большие таблицы блокировка таблицы и длительное удержание блокировок существенная нагрузка на CPU и IO снижение производительности БД на период построения индекса увеличение объёма…
Сложности перехода на микросервисы: границы и дублирование функций Выделить точные границы сервисов сложно из-за взаимозависимостей и особенностей бизнес-логики Для снижения связности и повышения автономности…
Риски глобального кеша и способы их устранения Проблемы: При параллельном доступе возможны состояния гонки (race conditions) Изменение данных в разных участках программы приводит к непредсказуемому состоянию…
Обзор протоколов прикладного уровня и практический опыт HTTP/HTTPS: базовые протоколы веба для клиент-серверного взаимодействия и REST API FTP/SFTP: обмен файлами; SFTP обеспечивает защищённую передачу поверх SSH…
Основные виды сборщиков мусора Serial GC однопоточный и простой, без параллельных пауз полностью приостанавливает работу приложения (stop-the-world) предназначен для небольших приложений и однопроцессорных систем…
Сигналы завершения и причина неперехватываемости SIGKILL Сигналы завершения SIGINT, SIGTERM, SIGQUIT дают процессу возможность освободить ресурсы и корректно завершить работу SIGINT — сигнал прерывания, отправляемый с…
Какие слои используют в стандартной структуре Laravel Роуты — разделяют API и web и выступают точкой входа в приложение Контроллеры — отвечают за обработку запроса, его валидацию и бизнес-логику Сервисы —…
Способы взаимодействия микросервисов и их различия REST: синхронный API поверх HTTP понятный для человека формат JSON оптимален для сценариев «запрос — ответ»
Основные виды коммуникации между сервисами синхронная (HTTP REST, gRPC) — взаимодействие по модели «запрос-ответ», при котором вызывающий сервис блокируется асинхронная (сообщения в очередях, Kafka, RabbitMQ) —…
Способы организации конкурентного выполнения в Python Потоки (threading): обеспечивают выполнение на уровне потоков ОС и особенно полезны в задачах с большим объёмом I/O; однако GIL ограничивает их эффективность при…
Способы уменьшения размера Docker-образа выбор минимального базового образа (alpine, scratch) применение multi-stage build для разделения стадий сборки удаление из образа ненужных файлов и кеша объединение инструкций…