- Опубликовано
Одно из первых полей в шаблоне ТЗ для gRPC -...
- Автор
- Имя
- Максим | Системный анализ
- Telegram
- Максим | Системный анализ349 подписчиков69 постовКак войти в IT через системный анализ и получить оффер от 270к+. Опыт Senior аналитика из топ-банков. Разборы, практика, собесы, техника мышления аналитика. Бесплатная консультация - в закрепе.
Одно из первых полей в шаблоне ТЗ для gRPC - это политика ретраев
Retry policy - это набор правил, определяющих, как система повторяет неудавшиеся операции (сетевые запросы, обращения к базе данных, микросервисам и т.д.) Какие существуют retry policy:No Retry (без повторных попыток) Операция выполняется ровно один раз. При ошибке сразу возвращается отказ. самая простая логика, не создаёт дополнительной нагрузки любая кратковременная неполадка становится фатальной Immediate Retry (немедленный повтор) После ошибки запрос повторяется мгновенно, без задержки. Обычно задаётся максимальное количество попыток (например, 2–3). быстрое восстановление при случайных ошибках при устойчивых сбоях создаёт очень сильную нагрузку Fixed Delay (фиксированная задержка) Между попытками выдерживается постоянный интервал (например, 1 секунда). В параметрах указывается количество попыток и интервал ожидания. простая реализация, понятное поведение при совпадении интервалов у многих клиентов могут возникать синхронные волны запросов в один момент (так называемый "шторм ретраев") Linear Backoff (линейная задержка) Интервал увеличивается линейно: 1с, 2с, 3с, 4с и т.д. Задаётся начальная задержка, шаг приращения и максимальное количество попыток. постепенно снижает нагрузку на восстанавливающийся сервис слабее разгружает систему, чем экспоненциальная задержка. Не убирает проблему "шторма ретраев" Exponential Backoff (экспоненциальная задержка) Задержка растёт экспоненциально: 1с, 2с, 4с, 8с, 16с… Чаще всего используется множитель 2 и задаётся максимальная задержка. эффективно снижает нагрузку, даёт сервису время на восстановление, де-факто стандарт в распределённых системах при идентичных начальных параметрах все клиенты могут синхронизироваться, как в предыдущих двух вариантах Exponential Backoff with Jitter (экспоненциальная задержка с джиттером) К экспоненциальной задержке добавляется рандомное слагаемое (jitter). убирает синхронизацию клиентов, предотвращает пики нагрузки слегка сложнее в реализации
Как вы думаете, в чем основная проблема всех этих подходов?
@maximbelovmentor
Максим | Системный анализ
349 подписчиков
69 постов
Как войти в IT через системный анализ и получить оффер от 270к+.
Опыт Senior аналитика из топ-банков.
Разборы, практика, собесы, техника мышления аналитика.
Бесплатная консультация - в закрепе.
Закрепленные
Свежие посты
- Опубликовано
Оффер на 300к за полчаса
Оффер на 300к за полчасаВыложил запись реального собеса - смотри видео
- Опубликовано
Почему вообще возник REST?
Почему вообще возник REST?
Из-за прекращающейся наивности RPC-программистов. Как я писал, раньше часто встречались "8 заблуждений разработчика". И...
- Опубликовано
Я писал про балансировку, но не упомянул про...
Я писал про балансировку, но не упомянул про один важный инструмент: service mesh. К нему пришли не сразу, была целая эволюция балансировки....
- Опубликовано
За что на самом деле 39 млн человек заплатили Rockstar?
За что на самом деле 39 млн человек заплатили Rockstar?25 июня открылись предзаказы на GTA 6. За сутки 39 млн покупок и $3 млрд выручки. Цифры по...
- Опубликовано
Как смутить синьора? Спросить про балансировку
Как смутить синьора? Спросить про балансировку
Балансировка - это обязательный пункт в любом ТЗ, но многие описывают её формально, не...
- Опубликовано
🤯 Странные задачи на собесе
🤯 Странные задачи на собесе Дают задачу: "Спроектируй светофор".
И большинство впадает в ступор или начинают 20 минут душнить про то, как...
- Опубликовано
Первое правило системного анализа.
Первое правило системного анализа..✍...ладно, забудем. Добро пожаловать в клуб! 🎬 (включай видео)На июнь осталось 1⃣ место на менторство со мной...
- Опубликовано
Даже использование Exponential Retry with...
Даже использование Exponential Retry with Jitter не спасает упавший сервис от перегруза, а лишь откладывает большое количество запросов на...







