За кулисами: Эволюция конвейер... Заметка

За кулисами: Эволюция конвейера рекламы Netflix для прямых трансляций — Часть II

Netflix перестроила свой издатель событий рекламы для обработки возросшего масштаба и сложности, особенно для рекламы в прямом эфире. Предыдущая система полагалась на хранилище типа "ключ-значение" для обогащения рекламных метаданных. Этот подход, хотя и функциональный, создавал узкие места в масштабировании и критические зависимости, которые не подходили для прямых трансляций. Прямые трансляции генерируют огромный, пиковый трафик, требующий более надежного и эластичного решения.Новая архитектура использует Apache Flink, фреймворк для обработки потоков с сохранением состояния, для обогащения в режиме, близком к реальному времени. Логи ответов рекламного сервера отправляются в Kafka вместо базы данных. Затем Flink выполняет потоковое соединение в реальном времени между этими ответами и рекламными событиями, сгенерированными клиентом. Это исключает прямые записи в базу данных на критическом пути обслуживания, предотвращая сбои и повышая масштабируемость.Задание Flink нормализует события, направляет их в соответствующий регион обработки и, что важно, выполняет соединение с сохранением состояния. Оно хранит недавние ответы рекламного сервера в памяти и сопоставляет входящие клиентские события с ними в пределах настраиваемых окон, обычно 60 минут. Этот подход позволяет обогащать данные на месте, когда оба события доступны. Если событие приходит первым, оно удерживается до появления соответствующего ответа.Для обеспечения межрегионального обогащения система направляет клиентские события в регион, который обслуживал рекламу, вместо глобального реплицирования всех ответов обслуживания, что более экономично. Токен рекламы теперь включает информацию о регионе обслуживания. Хотя 60-минутное окно охватывает большинство событий, существует отдельный путь для восстановления поздно прибывших событий, обеспечивающий полноту данных для выставления счетов и отчетности. Эта архитектура обработки потоков с сохранением состояния обеспечивает необходимую масштабируемость и отказоустойчивость для меняющихся потребностей Netflix в рекламе.
CdXz5zHNQW_vv6mcOQtqA.png