TGViewer
Записки системного архитектора Записки системного архитектора @sysarchthoughts · 269 subscribers
Post #20 240
На днях прорабатывал поведение сервиса при отказах, и задумался, как это правильно делать.

Вот есть сервис, он что-то делает, к примеру, читает сообщения из очереди Кафки, как-то их обрабатывает и записывает результат в какую-то СУБД. И вот, допустим, он не смог прочитать сообщение из Кафки, сетка там, к примеру, отказала, или Кафка призадумалась, не важно.

Что делает в такой ситуации благовоспитанный сервис? Правильно, ждет немножко и пробует ткнуться ещё раз. Если не помогло, то и еще раз. Особо интеллигентные сервисы умеют даже варьировать время ожидания между попытками. Но все это хорошо, когда отказ внешних подсистем относительно кратковременный.

А если связанный компонент прилег надолго - то как должен вести себя сервис в части повторных попыток? Продолжать долбиться до бесконечности и гадить в логи, как отвергнутый ухажер мучает соседей красавицы, источая гнусавые серенады под её окном?
Или все же через какое-то время он должен понять и признать, что его отвергли, смириться с этим и перестать изображать из себя сумасшедшего дятла?
А как потом правильно вывести сервис из депрессии и вернуть к активной жизни?

В общем, я пока принял половинчатое решение - завел конфигурируемую политику повторных попыток при отказах, в которую включил ограничение на число повторных попыток. При превышении этого числа сервис расстраивается и прекращает работу. А дальше кубер запустит на освободившееся место новый под и серенада продолжится. Кардинально ничего не изменяется, но, по крайней мере, дятлы будут сменять друг друга. Посмотрим, как эта штука будет вести себя в реальной жизни, а там подумаем как улучшить.

А как вы реализуете повторы при отказах?
#мысливслух
More from @sysarchthoughts
  1. Aug 4, 2026Мне жена как-то сказала, что только в зрелом возрасте осознала трагедию сказки о рыбаке и…
  2. Jul 2, 2026Я не давлю. Я пытаюсь опереться.
  3. Apr 2, 2026Пригласили меня тут в жюри школьного проектного конкурса, и вот что хочу сказать: мало кто…
  4. Mar 22, 2026Как технические границы делают все бизнес-критичным? Ключевой вопрос, которому посвящена э…
  5. Mar 22, 2026Неуловимо напоминает "основной закон органической химии". Если смешать бочку мёда и бочку…
  6. Mar 10, 2026(продолжение рассуждений про больницу) Что мне тут понравилось, что беру на заметку. 1. Че…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →