Обработка ошибок и отказоустойчивость при взаимодействии сервисов для временных сбоев применяем паттерны повторных попыток (retry) с backoff circuit breaker изолирует неисправный сервис и не допускает каскадного…
Как обеспечивать потокобезопасность в приложениях? синхронизация критических секций с помощью мьютексов и семафоров применение атомарных операций и lock-free структур данных для сохранения высокой производительности…
Переход на микросервисы: анализ и последовательность внедрения Анализ: оценка действующей монолитной архитектуры, поиск узких мест и компонентов с самостоятельной бизнес-логикой Декомпозиция: выделение автономных…
поддержание согласованности кэша и БД — одна из основных задач систем, использующих кеширование часто применяют подход write-through: данные сначала записываются в кэш, а затем — в БД при использовании write-back…
Коллекции в Java на практике Коллекции представляют собой наборы объектов с удобными средствами для их хранения и обработки К основным интерфейсам относятся List, Set и Map — каждый задаёт свою структуру и гарантии…
микросервисы — автономные сервисы, взаимодействующие через API REST: синхронное взаимодействие по HTTP/JSON, простая интеграция gRPC: синхронный и асинхронный обмен, бинарный протокол, высокая производительность…
Интеграция с security-слоем заказчика (Централизованный логин, токены) security-слой выступает централизованным сервисом аутентификации и авторизации для входа применяются протоколы OAuth2/OpenID Connect после…
интеграция с помощью REST API: синхронный подход, удобный для вызовов и хорошо подходящий для сценария запрос-ответ браузеры и внешние клиенты преимущественно взаимодействовали через REST для асинхронного обмена и…
Как из сервиса вернуть доменную ошибку и отдать корректный HTTP-код? Контекст: обработка ошибок в backend-сервисах и API Для представления доменных ошибок применяю исключения (exceptions) либо error objects В…
Как обновлять захардкоженный список наград без передеплоя приложения? конфигурация через properties — файл входит в состав билда и связан с ним для внесения изменений требуется рестарт/деплой приложения внешний сервис…
Как выполнить «инверсию» зависимости между микросервисами? Сервис A обращается к сервису B напрямую, поэтому между ними возникает жесткая связь — tight coupling Инверсия зависимости достигается за счет асинхронного…
Обмен данными выполняется по асинхронному протоколу Для передачи используются очереди (queue) либо топики (publish-subscribe) Микросервисы отправляют сообщения в брокер и подписываются на нужные события Поддерживаются…