Моя команда получает данные в реальном времени (с помощью Twitter API) и помещает их в kafka
. Тогда улучшите это для нашего использования, передавая искру и сохраните это в кассандре. Итак, API данных в реальном времени -> kafka
-> spark streaming
-> cassandra
.
Эта обработка данных (от API до cassandra
) не моя работа. Моя роль в этом проекте состоит в том, чтобы передавать эти данные клиенту в режиме реального времени, сразу после обновления cassandra
.
Я планировал передавать данные клиенту, открыв непротиворечивый сокет, потому что мы не делаем нужны запросы-ответы, но только потоковая передача с сервера на клиент после первого подключения.
Сначала я создал сервер с использованием spring boot
и подключил его с помощью cassandra
. Но я обнаружил, что прослушивание изменений cassandra
напрямую довольно сложно. Чтобы вызвать действия сервера с cassandra
вещами, я нашел CDC
для решения, но использование CDC
кажется задачей более низкого уровня.
Или, возможно, я могу прикрепить еще одну kafka
к cassandra
с cassandra source connector
, чтобы уведомить мой сервер о том, что на cassandra
есть какое-то обновление, и передать точное содержание обновления. Тогда архитектура может быть
API данных в реальном времени -> kafka
-> spark streaming
-> cassandra
-> kafka
-> Spring
сервер -> (сокет) -> клиент.
Этот подход в порядке? Я чувствую эту архитектуру как сумасшедший комплекс по сравнению с ее назначением, но понятия не имею, поскольку я изучал только сервер, а не обработку данных в реальном времени. Есть ли лучший и простой способ потоковой передачи уточненных данных в режиме реального времени клиентам с сокетом?