Задача: есть callback, срабатывающий 100 тысяч раз в секунду, поставляет бинарные данные. Нужно доставить их на центральный сервер. Какие подводные камни и хорошие практики?

Сначала оцените байтовый поток и допустимость потерь. Callback должен быстро передать данные в ограниченный буфер, а отдельные workers — пакетировать и отправлять их.

Короткий ответ

Что ответить на собеседовании

Сначала оцените байтовый поток и допустимость потерь. Callback должен быстро передать данные в ограниченный буфер, а отдельные workers — пакетировать и отправлять их.

Подробный разбор

Ответ с пояснениями

Сначала оцените байтовый поток и допустимость потерь. Callback должен быстро передать данные в ограниченный буфер, а отдельные workers — пакетировать и отправлять их.

Проверьте владение входным буфером: его могут переиспользовать сразу после callback, тогда нужна копия. Задайте backpressure или явную политику сброса, последовательные номера, retries и дедупликацию. При требовании пережить падение нужен локальный durable-spool. Накапливать бесконечную очередь в RAM нельзя.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее