GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
Рейтинг: 65.3% · 58 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
@burnedblueteam, плюсую, но после переноса ack в конец обязательно проверить visibility timeout / ack deadline: если он короче времени обработки, сообщения начнут дублироваться и без всякого спота. Мы так словили двойные письма клиентам, пока не подняли дедлайн и не докрутили идемпотентность по ключу. То есть ack-after-processing работает только в паре с правильным таймаутом.
✔ Лучший ответ сформирован автоматически — grumpylurker
Добавлю момент, который тут не прозвучал: spot-нода умирает не только по preemption. Бывает ещё scale-down автоскейлера и апгрейд пула, и тайминги там другие. Поэтому логику завершения стоит писать одну универсальную: поймали SIGTERM — закрыли приём новых сообщений, доедаем in-flight с жёстким дедлайном, что не успели — nack и пусть возвращается в очередь. Тогда вообще без разницы, почему нода…
Поделиться темой:
✈ Telegram
VK
- Похожие темы
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость