Пакетная обработка Spark приносит большую пользу нашему бизнесу, поскольку ее очень легко масштабировать по горизонтали (мы используем AWS EMR с YARN).
Однако возникла новая проблема, поскольку наше новейшее частное решение следуетмикросервисная архитектура.На данный момент существует ~ 230 микросервисов, выступающих в качестве производителя , в которых события хранятся в Kafka (что означает ~ 230 тем Kafka).
Хотя нам удалось проверитьиспользование Spark Streaming в качестве обработки событий для создания самого последнего состояния объектов. Правильно ли я говорю, что мне потребуется одно приложение Spark Streaming для каждой темы Kafka (то есть ~ 230 приложений)?
Если так, то нашкластер с 48 vCPU и 192 ГБ памяти может одновременно обрабатывать только 52 потоковых приложений .Это звучит слишком мало, так как эти приложения (которые должны работать 24 часа) ничего не делают, поскольку они просто извлекают события каждые 5 секунд и выполняют операции CRUD для нашего хранилища данных.
Я скучаю по использованию потоковой передачи Spark?Какой другой подход или структуру вы бы выбрали / использовали?