Spring Data Flow - stream a task

0

Hej
Potrzebuję zrobić przepływ: pobieranie informacji z bazy danych -> wykonywanie logiki biznesowej w oparciu o informacje -> zapisanie informacji o pliku. Apka ogólnie jest zrobiona w Spring Cloud Dataflow i wydaje mi się, że w tej sytuacji lepszy jest Stream. Czytam jednak, że Stream ma być aplikacją uruchamianą długofalowo, natomiast Taski to krótkodystansowe apki. Czy mógłby ktoś mi wytłumaczyć tą różnicę między streamem a taskiem? No i co w takim przypadku byłoby lepsze w mojej sytuacji?

0

W skrócie stream to zbiór aplikacji Spring Bootowych połączonych ze sobą warstwą komunikacji np. Kafka, RabbitMQ, które przetwarzają ciągle napływające dane w czasie rzeczywistym. Typowy szkielet to source(źródło danych) + processor(transformacja danych) + sink(zapis danych). Streamy stosuje się tak jak napisałeś jako aplikacje długofalowe.

Task to natomiast pojedyncza aplikacja spring bootowa, która może realizować to samo zadanie co stream(wyciągnięcie danych, transformacja, zapis) ale nie musi. Taski stosuje się raczej do zadań wykonywanych co określony czas dla skończonej ilości danych.

Co wybrać zależy w pełni od tego co dokładnie potrzebujesz, jak coś prostego to zrób taska, jak masz bardziej skomplikowaną logikę i dane napływają cały czas to możesz rozbić poszczególne elementy na stream.
Poczytaj dokumentacje to lepiej zrozumiesz co jest odpowiednie dla twojego przypadku: https://dataflow.spring.io/docs/concepts/architecture/#application-types

Ogólnie o ile jest to pierwsza tego typu aplikacja(nie masz innych osadzonych w Spring Cloud Data Flow) i nie planujesz w przyszłości wykorzystania Spring Cloud Data Flow to imo szkoda zachodu na rozkminianie całości. Lepiej zrobić prostą apkę Spring Bootową ze schedulerem i tyle.

1 użytkowników online, w tym zalogowanych: 0, gości: 1