Обновить
3

Пользователь

1
Подписчики
Отправить сообщение

Практическое построение сервисов на Go под реальный трафик

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

Оптимизация кода сервисов на Go под реальную нагрузку

Когда сервис на Go начинает «тормозить» под реальной нагрузкой, проблема почти всегда не в самом языке и даже не в алгоритмах. Чаще всего узкие места лежат на уровне работы с памятью, сериализации данных и неочевидных накладных расходов рантайма. Если сервис упирается в сеть, базу данных или внешние API — оптимизация кода даёт ограниченный эффект. Но в CPU-bound сценариях (парсинг JSON, агрегации, обработка данных) каждая лишняя аллокация и копирование начинают стоить дорого.

Ключевая особенность Go — автоматическое управление памятью через garbage collector. Это удобно, но под нагрузкой GC становится заметным фактором:

Читать далее

Почему retry и timeout могут ухудшить отказоустойчивость системы

Время на прочтение17 мин
Охват и читатели8.5K

Retry и timeout кажутся базовыми механизмами отказоустойчивости.
Не прошел запрос — повторим. Ответ не пришел за 500 мс — оборвем. Кажется, что этого достаточно, чтобы система стала надежнее.

На практике в распределенных системах retry и timeout могут работать наоборот. Когда сервис уже деградирует, повторные запросы не сглаживают проблему, а усиливают ее. Клиенты начинают ретраить одновременно, нагрузка растет, и сбой распространяется дальше по цепочке зависимостей.

В этой статье разберем, как retry создает каскадные отказы, почему таймауты могут ухудшить ситуацию и какие механизмы — backoff, jitter и circuit breaker — помогают этого избежать

Читать далее

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность