본문 바로가기

Spring

Spring Cloud Data Flow

이직을 했더니, 주로 배치 job을 수행하고 MSA 구조로 구성된 작업들이 많이 있었다. 이들은 기존에 Jenkins로 batch Job을 수행시키고 있었지만 최근부터 개발되는 작업들은 모두 Spring Cloud Data Flow를 사용하려는 경향이 있어 이를 공부하고자 이 글을 남긴다.

 

근데 생각보다 Google에 자료가 많이 없다. 잡다한 설명들은 다 빼고 키워드 위주로 내가 이해한것들을 기록하고자 남긴 것이니 설명이 다소 부족할 수 있는점 이해 바란다. 

 

아직 Docker에 대한 이해도 모자라서, 업무를 진행 해 가면서 이 글을 더욱더 깊이있게 채워나갈 예정이다. 혹시 틀린 내용이 있다면 댓글 달아주세욥.

 

Spring Cloud Data Flow이란 ?

런타임 환경에서, Spring Boot Application을 결합 해주는 친구이며

실시간으로 데이터를 통합 하거나 실시간으로 데이터를 처리 하는 친구이다.

 

Spring Cloud Data Flow를 표현하자면 ?

MicroService Data Flow Orchestrate 라고 함

 

SCDF에서 DataFlow를 구현하는 구성요소는?

Streams 와 Task로 구성됨

- Streams : long running sequence of things -> 이벤트 기반의 프로세스. 서버가 실시간으로 계속 돌아가는거

- Task : one and done -> 배치 또는 일회성 Job

 

SCDF가 MSA(MicroServiceApplication)를 지원하는 방식은?

SCDF에 MSA를 등록 할 수 있으며, 등록한 MSA를 모니터링 하거나 원격관리 등의 기능을 지원함

 

SCDF 운영 방식

- Dashboard, RestAPI, ConsoleShell

 

SCDF를 사용하려면 어떤것이 필요한가?

- Messaging MiddleWare : SCDF는 RabbitMQ 혹은 kafka를 메세지 브로커로 사용함

- Modern Application Runtime(이게 정확히 무슨 뜻인지는 모르겠음) : SCDF를 돌릴 때에는 Local 실행하는 것을 비추천 한다고 함 

        - Cloud Foundry / Kubernetes / ApacheYARN / Apache Mesos / Local Server

- RDBS : Stream App, Task App의 실행 정보를 저장하기 위한 DB 필요(default : h2)

- App Repository : 실행하기 위한 App의 저장소 구축 해야함. Docker Registry 또는 Maven으로 구성. 준비가 안되어 있다면, FileSystem 기반으로 가능하긴 하나 실서비스에 비추천 한다고 함.

 

실제 설치 및 사용기

https://brunch.co.kr/@springboot/61

'Spring' 카테고리의 다른 글

AbstractRoutingDataSource  (0) 2020.01.28
QueryDSL  (0) 2020.01.28
토비의 스프링 2장 - 테스트  (0) 2019.06.02
토비의 스프링 1장 - 오브젝트와 의존관계  (0) 2019.06.01