«Повторим запрос один раз» может превратиться в восемь запросов
Представьте цепочку A → B → C → D. Если D ошибается, а каждый предыдущий сервис повторяет вызов один раз, до D в худшем случае дойдут восемь попыток на один исходный запрос.
Лимиты ретраев уменьшают усиление, но оно всё ещё накапливается по цепочке. В Uber добавили контекст ошибки: инфраструктура различает сервис, где она возникла, и сервисы, которые лишь передают её выше.
Повтор разрешается на границе рядом с источником сбоя, в пределах бюджета. Выше по цепочке ту же ошибку повторно «лечить» уже не пытаются.
Так временный сбой сохраняет шанс на успешную повторную попытку, а перегруженный сервис не получает дополнительную лавину от каждого уровня зависимостей.
Post #14937
3.6K

- 👍 6
- 🤗 4
- ✍ 3
- 💘 3
- 😎 2
- ⚡ 1
- 🎉 1
- 🤨 1
- 😴 1
- 👻 1
- 💅 1