как инициализировать непрерывный поток с помощью alpakka, spring boot и Akka-stream?

#spring-boot #akka-stream #alpakka

Вопрос:

Все,

Я разрабатываю приложение, которое использует интеграцию загрузки alpakka spring для чтения данных из кафки. У меня большая часть кода готова, единственное место, где я застрял, — это как инициализировать непрерывный запущенный поток, так как это будет серверное приложение и у него не будет никакого api, из которого нужно вызывать ?

Ответ №1:

Насколько я знаю, весенняя интеграция Alpakka в основном основана на предоставлении потоков Akka через контроллер HTTP Spring. Поэтому я не уверен, какой цели служит включение Spring в это, поскольку существует значительное несоответствие между тем, как приложение Akka будет работать, и тем, как приложение Spring будет работать.

Предполагая, что вы говорите об использовании Альпакки Кафки, наиболее идиоматичным было бы просто запустить поток, питаемый Альпаккой Кафкой Source в вашем main методе, и он будет работать, пока его не убьют или он не выйдет из строя. Возможно, вам захочется использовать рестартсорсинг вокруг потребительской и бизнес-логики, чтобы гарантировать, что в случае сбоя поток перезапустится (обратите внимание, что обычно следует ожидать, что сообщения, для которых фиксация смещения не была обработана снова, так как Кафка в типичных случаях может гарантировать только по крайней мере одну обработку).

Комментарии:

1. Спасибо @levi-ramsey , у меня сложилось впечатление, что akka-потоки с весной будут точным представлением потока. Я хочу провести некоторую работу по интеграции с серверной частью , и именно поэтому я говорил об этом.. но имеет смысл просто иметь основной метод, и он будет работать, пока его не убьют или он не выйдет из строя.