Используйте постепенную замену экземпляров, readiness-проверки и завершение активных запросов. Несовместимую миграцию разбейте на expand–migrate–contract, чтобы обе версии временно работали с одной схемой.
Как обновить высоконагруженный микросервис на новую версию без потери запросов? Что делать если миграция БД ломает старую версию?
Используйте постепенную замену экземпляров, readiness-проверки и завершение активных запросов. Несовместимую миграцию разбейте на expand–migrate–contract, чтобы обе версии временно работали с одной схемой.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Используйте постепенную замену экземпляров, readiness-проверки и завершение активных запросов. Несовместимую миграцию разбейте на expand–migrate–contract, чтобы обе версии временно работали с одной схемой.
Сначала добавьте совместимые поля или таблицы, затем выложите код переходного чтения/записи и перенесите данные. Удаление старой схемы делайте после ухода старых экземпляров и согласованного окна отката. При остановке экземпляр перестаёт принимать новый трафик, но получает время завершить текущий; задания очереди подтверждаются после обработки. Дополнительно нужны запас мощности, метрики ошибок и идемпотентность повторов. Абсолютное отсутствие потерь нельзя гарантировать одной стратегией rolling update.