Искровой поток вместо Java REST API - PullRequest
0 голосов
/ 12 февраля 2019

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

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

Небольшое пакетное задание Spark будет проблемой, так как мы должны каким-то образом хранить данные внутри приложения в течение этого короткого периода, для которого нам нужно реализовать некоторую Q, увеличивающую сложность.

Может ли кто-нибудь показать некоторое понимание.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Пока это невозможно, вам нужна очередь или какой-то буфер для микробатчей, нет ничего похожего на обработку каждой записи, возможно, будет доступно в будущих выпусках.прочитайте главу 20. Основы потоковой обработки.Вы получите четкое представление

0 голосов
/ 12 февраля 2019

Это довольно распространенный случай, у меня есть несколько советов для вас.

Рекомендуемый стек:

  • Spark Streaming
  • Kafka

С указанным выше стеком:

  • Ваша конечная точка не изменилась.С новой реализацией вместо данных процесса ваша конечная точка опубликует данные в теме Kafka.
  • Spark Streaming подпишется на тему Kafka, фильтрует и манипулирует и сохраняет ее в Redis

Sample Spark + Kafka

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...