Потоковая передача событий

Потоковая передача событий — это подход, при котором программное обеспечение отправляет данные о событиях одного приложения другому, чтобы поддерживать постоянный обмен информацией об их действиях. Представьте себе службу, транслирующую всё, что она делает, всем остальным службам. Каждое действие, выполняемое такой службой, называется событием, отсюда и название «потоковая передача событий». Например, служба автоматизированных котировок Национальной ассоциации дилеров по ценным бумагам (NASDAQ) каждую секунду публикует свежую информацию о ценах на акции и сырьё. Вы бы наверняка хотели, чтобы приложение, которое отслеживает стоимость определенного набора акций, обновляло котировки в режиме реального времени. Yahoo! Finance предоставляет API, который извлекает данные из NASDAQ и отправляет (или передает) информацию (или события) в любое приложение, которое на него подписано. Отправляемые данные, а также изменения в этих данных (например, изменения цен на акции) являются событиями, а процесс их доставки в приложение как раз и представляет собой потоковую передачу событий.

Какую проблему решает

При традиционном подходе Yahoo! Finance мог бы использовать одиночные TCP-запросы. Однако это было бы крайне неэффективно, поскольку для каждого события приходилось бы устанавливать отдельное соединение. Поскольку всё чаще возникает потребность в данных, передаваемых в режиме реального времени, масштабирование такого решения стало бы сложной задачей. А вот подход, при котором открывается соединение с дальнейшей подпиской на поток событий, уже идеально подходит для сбора данных в реальном времени. Объём генерируемых данных экспоненциально растёт, а вместе с ним постоянно меняется и состояние данных. Разработчики и пользователи должны иметь возможность видеть эти данные практически в реальном времени.

Как именно решает проблему

Потоковая передача событий позволяет передавать изменения данных от источника к получателю. Вместо того, чтобы ждать, пока другие сервисы запросят информацию, сервис непрерывно транслирует все произошедшие в нём события (или действия). При этом сервис не заботится о том, что происходит с отправляемыми им данными. Он просто выполняет свои задачи и транслирует информацию, оставаясь полностью независимым от любого другого сервиса.


Последнее изменение May 30, 2024: [ru] Localize Event Streaming in Russian (#3077) (9fff357)