Грокаем стриминг
Фишер Джош, Ван Нин
0
(0)
Это бета-версия LiveLib. Сейчас доступна часть функций, остальные из основной версии будут добавляться постепенно.
Фишер Джош, Ван Нин
0
(0)

прочитала свою первую книжку из серии grokking
ниже краткий конспект
Несложная для усвоения книжка, которая помогает упорядочить мысли (особенно на английском) про процессы (а в случае стриминга long running процессы), потоки (threads), между которыми распределяется память процесса, и очереди (queues) как один из ключевых концептов в архитектуре потоковых систем, позволяющий обрабатывать события (events) по принципу fifo (first in first out, или «первым пришел, первым ушел»). Процесс разбивается на stages или компоненты (подразумевается, что системы пакетной и потоковой обработки имеют многокомпонентную “multi-stage” архитектуру). Пропускная способность каждого компонента обеспечивается за счет количества его экземпляров (instances). Нагрузку между инстансами распределяет балансировщик/диспетчер событий. Также в книге приводится две наиболее часто используемые стратегии по группировке событий (field и shuffle grouping), которые он выполняет.
Компоненты запускаются операторами (executors). Поток (stream) - не что иное как передача данных от одного компонента к другому.
Компоненты, связанные потоком, образуют джоб; данные (или события/сообщения) передаются по каналу от компонента-источника (source, принимает входящие данные и сохраняет их как события в очередь) к компоненту-оператору (operator, настроенный на канал, разбирает очередь и обрабатывает события в соответствии с заданием-джобом, в результате которого получаем данные «на выход»). Джоб настроен на прослушивание событий заданного класса на определенном порту(-ах).
Вобщем первые три главы совсем для чайников, в 4ой будет про распараллеливание (fan-out) и агрегацию (fan-in) потоков, и ориентированный ациклический граф DAG (directed acyclic graph).
Если вы знакомы с концепцией джойнов и оконных функций в sql, то тут с этим тоже не должно быть проблем.
В главе про 3 типа delivery semantics вам напомнят про идемпотентность.
А под конец расскажут про backpressure, check- и savepointing.
Тем не менее мне понравилось как авторы ведут читателя от простого к сложному, и примитивная стриминговая система по ходу книги становится масштабируемой и обрастает …
В связи с быстро развивающимися и устаревающими технологиями, авторы выбрали framework-agnostic подход. Поэтому на вопросы по типу чем kafka отличается от rabbitMQ эта книга ответов не даёт.
Комментарии 0
Ваш комментарий
, чтобы оставить комментарий.