Рубрика «retry»

Всем привет! Хочу рассказать об особенностях использования механизмов retry, которые дает spring для kafka из коробки. У нас java-21, spring-boot-3.2, kafka-3.7, spring-kafka-3.1.x

Сразу должен извиниться за качество скриншотов — они доставались из чатов, т. к. доступа к grafana на нагрузочном стенде у нас не было, кое-где не совпадает время, потому что были разные прогоны, а скрины были не везде полные. Но в целом картинки отражают действительность.

Цель Читать полностью »

Иногда инцидент начинается не с 5xx и не с красного графика

Он начинается с одной стойки

И с одного таймаута

09:12 - alert: db-replica-02 connection timeout

HAProxy зелёный
HTTP 5xx = 0.2%
p50 = 38–42ms

Минимальная схема

Минимальная схема

2 стойки
В каждом свой ToR
Primary и app в rack-1
Replica-01 в rack-1
Replica-02 в rack-2

Читать полностью »

"You can't have errors in your code if you wrap the entire codebase in a try/catch block"

"You can't have errors in your code if you wrap the entire codebase in a try/catch block"

Этот мем смешной, пока не осознаешь, что в реальных проектах мы именно так и поступаем. Только заворачиваем не весь код сразу, а каждый HTTP-запрос по отдельности.

Пишешь fetchЧитать полностью »

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

Этот пост — продолжение вымышленных историй о разработчике Васе, который несколько лет назад разбирался с идемпотентностью в распределённых системах. Теперь перед ним новые задачи — получится ли справиться с ними в этот раз? Давайте узнаем.

Читать полностью »

За несколько недель до 14 февраля системе Dodo IS немного поплохело под нагрузкой. Одной из причин стало то, что в backend’ах мобильного приложения и сайта не совсем корректно работали политики поверх HttpClient’а (Retry, Circuit Breaker, Timeout). В этой статье я хочу поделиться с вами потенциальными проблемами, которые могут возникнуть при неправильном использовании таких политик.

Повышаем надёжность HttpClient’а в .NET Core или как ошибиться в 3 строках кода 4 раза - 1

Читать полностью »

Не так давно я обнаружил одну интересную фичу в Руби. Мне показалась, что она может быть весьма полезной в определенных ситуациях. Тем не менее, я пришел к выводу, что этот трюк не так уж частно используется в коде, так как за многие годы программирования наткнулся я на него только сейчас. Идея в том, что мы можем дать еще один шанс коду, который привел к исключению (exception) и запустить его повторно. Давайте посмотрим, насколько легко это делается в руби.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js