Kafka Streams работает для потоковой обработки данных следующим образом: 2
- Создаётся топология потоковой передачи. 1 Это направленный ациклический граф с узлами обработки и рёбрами, которые представляют поток данных. 3 В качестве вершин выступают рабочие узлы, которые соединены между собой потоками. 1
- Данные поступают из Kafka через узлы источника в верхней части топологии. 3 Они проходят через узлы пользовательского процессора, где выполняются логические операции, и выходят через узлы приёмника в новый топик Kafka. 3
- Kafka Streams создаёт фиксированное количество потоковых задач на основе входных потоковых разделов для приложения. 2 При этом каждой задаче назначается свой список топиков Кафка. 2
- Задачи могут создавать свою собственную топологию потоковых обработчиков на основе назначенных разделов, буферизируя каждый раздел и обрабатывая по одной записи за раз из этих буферов. 2
В процессе обработки можно преобразовывать данные с помощью различных операций без состояния, таких как сопоставление и фильтрация. 3