У нас вы можете посмотреть бесплатно 🔥 Подготовка к техническому собеседованию на Java в J.P. Morgan Chase & Co., опыт работы 4+ года ... или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
В этом видео мы обсудим вопросы и ответы, которые могут возникнуть на собеседовании в компании J.P. Morgan Chase & Co для Java-разработчика бэкенда. Вопрос 1. Каковы ключевые проблемы микросервисов? Ответ: Сложность взаимодействия сервисов Распределенное управление данными Обнаружение сервисов Управление конфигурацией Мониторинг и логирование Сложность развертывания и DevOps Безопасность Управление командой и кодовой базой Сложность тестирования Версионирование и обратная совместимость Отказоустойчивость и отказоустойчивость Стоимость и накладные расходы Вопрос 2. Что такое API Gateway и какова его роль? Ответ: API Gateway — это серверный компонент, который выступает в качестве единой точки входа в систему, состоящую из множества микросервисов. Он абстрагирует внутреннюю архитектуру, централизует сквозные задачи (например, аутентификацию, логирование, ограничение скорости) и обеспечивает более плавное взаимодействие клиента с сервисом. Вопрос 2. Что такое API Gateway и какова его роль? Ответ: API Gateway — это серверный компонент, который выступает в качестве единой точки входа в систему, состоящую из множества микросервисов. Он абстрагирует внутреннюю архитектуру, централизует сквозные задачи (например, аутентификацию, логирование, ограничение скорости) и обеспечивает более плавное взаимодействие клиента с сервисом. Основные роли и обязанности Маршрутизация запросов Агрегация сервисов (бэкенд для фронтенда — паттерн BFF) Аутентификация и авторизация Ограничение скорости и регулирование трафика Кэширование Логирование и мониторинг Завершение SSL-соединения Преобразование запросов и ответов Вопрос 3. Что такое согласованность данных? Как обеспечить согласованность данных в распределенной микросервисной архитектуре? Ответ: Согласованность данных гарантирует, что данные остаются точными, корректными и синхронизированными между несколькими сервисами. В микросервисах, из-за распределенности, достижение строгой согласованности (как в монолитных системах) затруднительно и не всегда необходимо или рекомендуется. Типы согласованности Проблемы согласованности данных в микросервисах Распределенные базы данных Разделение сети Независимый отказ сервисов Параллелизм и состояния гонки Транзакционные границы между сервисами Методы обеспечения согласованности данных 1. База данных для каждого сервиса 2. Паттерн SAGA (для распределенных транзакций) 3. Событийно-ориентированная архитектура 4. Идемпотентность 5. Захват изменений данных (CDC) 6. Версионированные и неизменяемые события Вопрос 4. Что произойдет, если микросервис в цепочке выйдет из строя? Как предотвратить каскадные сбои? Объясните подробно. Ответ: Что такое каскадный сбой? Каскадный сбой в микросервисах происходит, когда: Выходит из строя один микросервис (например, замедляется, недоступен, перегружен). Другие сервисы, зависящие от него, зависают или также выходят из строя. Эти сбои распространяются по всей системе. Пример: Цепочка сервисов: Клиент → API Gateway → Сервис A → Сервис B → Сервис C Если сервис C замедляется или аварийно завершает работу: Сервис B ожидает сервис C → блокируется. Сервис A ожидает сервис B → тоже блокируется. API Gateway истекает время ожидания или происходит сбой. Клиент получает сообщение об ошибке. Как предотвратить каскадные сбои 1. Тайм-ауты Установите явные тайм-ауты для вызовов сервисов. Предотвратите бесконечное ожидание сервисов. Возвращайте резервный вариант или ошибку, если истекает время ожидания. 𝑅𝑒𝑠𝑡𝑇𝑒𝑚𝑝𝑙𝑎𝑡𝑒 𝑟𝑒𝑠𝑡𝑇𝑒𝑚𝑝𝑙𝑎𝑡𝑒 = 𝑛𝑒𝑤 𝑅𝑒𝑠𝑡𝑇𝑒𝑚𝑝𝑙𝑎𝑡𝑒(); 𝑟𝑒𝑠𝑡𝑇𝑒𝑚𝑝𝑙𝑎𝑡𝑒.𝑠𝑒𝑡𝑅𝑒𝑎𝑑𝑇𝑖𝑚𝑒𝑜𝑢𝑡(3000); // 3 𝑠𝑒𝑐𝑜𝑛𝑑𝑠 2. Паттерн "Автоматический выключатель" Предотвращает вызов сервисом нижестоящего сервиса, если высока вероятность сбоя. Представьте это как предохранитель — он "размыкается" при высокой вероятности сбоев и "замыкается" после восстановления. Популярные инструменты: Netflix Hystrix (устарело) Resilience4j Spring Cloud Circuit Breaker Состояния: Закрыто: Вызовы выполняются нормально. Открытая цепь: прерывает вызовы для предотвращения перегрузки. Частично открытая цепь: проверяет, восстановилась ли служба. Служба A | [Автоматический выключатель] | Служба B Если служба B не работает, цепь размыкается, и служба A немедленно возвращает резервный вариант. 3. Механизмы резервного копирования Обеспечивает поведение по умолчанию при сбое службы. Предотвращает серьезные сбои, возвращая кэшированные данные или значения-заполнители. 4. Повторные попытки с экспоненциальной задержкой Повторяет неудачные вызовы несколько раз, ожидая каждый раз больше времени. Предотвращает внезапные штормы повторных попыток. Повторная попытка 1 → Ожидание 100 мс Повторная попытка 2 → Ожидание 400 мс Повторная попытка 3 → Ожидание 900 мс Сдаться 5. Шаблон «Защитная перегородка» Изолирует ресурсы службы (потоки, пулы). Предотвращает влияние сбоя одной службы на другие. Пример: Используйте отдельные пулы потоков для базы данных, платежей и уведомлений. 6. Ограничение скорости и регулирование Контролирует количество входящих запросов в секунду. ...