> Какие методы использовались для достижения оптимизации процесса закрытия операционного дня (Go)
Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы
Компании: Wildberries
Стек: Go
> Пример ответа
Для оптимизации закрытия операционного дня в Go-бэкенде мы применили несколько ключевых методов:
-
Параллельная обработка с горутинами - разбили монолитный процесс на независимые этапы (сверка остатков, расчёт комиссий, формирование отчётов) и запустили их конкурентно через
sync.WaitGroup. Это сократило время выполнения с 15 до 4 минут. -
Пакетная обработка (batch processing) - вместо построчных SQL-запросов к транзакциям использовали массовые вставки/обновления через
COPYв PostgreSQL иbatch-операции в Redis. Размер батча подбирали эмпирически (5000 записей) для баланса между памятью и скоростью. -
Кэширование промежуточных результатов - агрегированные данные (например, итоги по счетам) кэшировали в Redis с TTL до завершения закрытия. Это исключило повторные вычисления при сбоях и повторных запусках.
-
Асинхронные очереди - для этапов, не требующих мгновенной консистентности (например, отправка уведомлений), использовали RabbitMQ. Основной поток закрытия не ждал их завершения, что ускорило критический путь.
-
Профилирование и узкие места - с помощью
pprofвыявили, что 70% времени уходит на сериализацию JSON для отчётов. Заменили её наencoding/binaryи protobuf, что дало прирост в 3 раза.
Результат: время закрытия дня снизилось с 25 до 2 минут при нагрузке 100 000 транзакций.
> Похожие задачи по Go
Как принимается решение, кому звонить при проблемах в нерабочее время
Как обнаружить, что процесс начал занимать больше времени
Какие задачи решает бэк офис для банков
Что такое поды в Kubernetes
> Похожие задачи по backend
Как принимается решение, кому звонить при проблемах в нерабочее время
Как обнаружить, что процесс начал занимать больше времени
Какие задачи решает бэк офис для банков
Что такое поды в Kubernetes
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью