토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

스프링 클라우드 데이터 플로우 공식 레퍼런스를 한글로 번역한 문서입니다.

전체 목차는 여기에 있습니다.


Spring Cloud Data Flow에선 Spring Cloud Stream이나 Spring Cloud Task로 만든 애플리케이션들을 자체적으로 지원하고 있다. Data Flow에서 http | log와 같은 스트림을 정의했을 땐, http출력 목적지를 가지고 있는 스트림 소스로 처리한다. 마찬가지로 log 싱크는 입력 목적지가 설정돼 있을 거다.

이 파이프라인을 Data Flow 없이 실행하려면, 이 애플리케이션들에 직접 Spring Cloud Stream 바인딩 프로퍼티를 설정해서 다음과 같은 구성을 만들어줘야 한다:

그러고 나서 이 애플리케이션들을 선택한 플랫폼에 따로따로 배포하면 된다.

Data Flow는 이 모든 것들을 대신 처리해주며, 사실 그 이상을 제공한다.

Data Flow는 태스크 애플리케이션을 실행할 땐 태스크의 실행 상태를 추적할 수 있도록, Spring Cloud Task와 스프링 배치에서 필요한 데이터베이스 스키마를 초기화하고, JDBC 커넥션 프로퍼티들을 제공해준다. Data Flow UI에선 이 정보를 조회할 수 있는 화면도 제공한다.

이후 Data Flow 모델은 불가피하게 표준 컨벤션을 준수하지 않아 수동으로 구성해야 하는 애플리케이션들도 지원할 수 있게 확장됐다. 자세한 내용은 Application DSL 페이지와 Polyglot Recipe 페이지에서 확인할 수 있다.


Pre-packaged Applications

스프링 팀은 애플리케이션들을 선별해서 미리 패키징해 제공하고 있기 때문에, 이 애플리케이션들을 이용해 다양한 데이터를 통합하고 파이프라인을 조합해서 프로덕션용 Spring Cloud Data Flow를 개발하고, 학습하고, 실험해볼 수 있다.


Application Registration

Data Flow에서 애플리케이션을 사용하려면 먼저 등록해야 한다. 개별 애플리케이션을 등록하는 방법은 Data Flow로 스트림 처리하기에서 설명하고 있다. 여기서 말하는 애플리케이션이란, 미리 패키징해 제공하는 애플리케이션pre-packaged application 중 하나일 수도 있고, 커스텀한 애플리케이션일 수도 있다.

Bulk Registration

pre-packaged applications 페이지에선 미리 패키징해 제공하는 애플리케이션들을 벌크로 등록하는 방법을 다룬다.

자체 애플리케이션을 포함해서 사용할 애플리케이션들만 벌크로 등록하고 싶다면, 다음과 같은 포맷으로 파일을 만들면 된다:

<type>.<name>=<app-url>, 여기서 <type>은 지원하는 애플리케이션 타입이며 (source, processor, sink, task, app), <name>은 등록할 이름, <app-url>은 실행할 수 있는 아티팩트의 위치다.

URL은 아무 표준 URL이나, Data Flow로 스트림 처리하기에 설명했던 Data Flow maven://, docker:// 형식 중 하나를 사용하면 된다.

성능을 최적화하려면, 노출할 애플리케이션 프로퍼티들의 이름과 설명을 가지고 있는 애플리케이션 메타데이터를 별도 컴패니언companion 아티팩트로 패키징할 수도 있다. 필수는 아니지만, 보통 메타데이터엔 애플리케이션 바이너리보다 먼저 접근하므로, Data Flow를 이용하면서 네트워크 리소스를 좀더 효율적으로 활용할 수 있다. 메타데이터 아티팩트를 사용하기로 했다면, <type>.<name>.metadata=app-metadata-url로 등록할 항목을 추가해주면 된다.

다음은 메이븐 아티팩트를 등록할 때 사용하는 벌크 등록 파일의 일부다:

sink.cassandra=maven://org.springframework.cloud.stream.app:cassandra-sink-rabbit:2.1.2.RELEASE
sink.cassandra.metadata=maven://org.springframework.cloud.stream.app:cassandra-sink-rabbit:jar:metadata:2.1.2.RELEASE
sink.s3=maven://org.springframework.cloud.stream.app:s3-sink-rabbit:2.1.2.RELEASE
sink.s3.metadata=maven://org.springframework.cloud.stream.app:s3-sink-rabbit:jar:metadata:2.1.2.RELEASE

애플리케이션들을 벌크로 등록할 땐 Data Flow 쉘을 이용하면 된다:

dataflow:>app import --uri file://path-to-my-app-registration.properties

--local 옵션을 전달하면 (디폴트는 true), 쉘 프로세스 자체에서 프로퍼티 파일 위치를 리졸브할지를 지정할 수 있다. Data Flow 서버 프로세스에서 리졸브해야 한다면 --local false로 명시해라.

app registerapp import 명령어에선, 해당 이름, 타입, 버전으로 앱을 이미 등록한 적 있다면, 기본적으로 재정의는 하지 않는다. 기존에 있는 앱 URI나 metadata-uri 좌표coordinates를 재정의하고 싶다면 --force 옵션을 넣어라.

하지만 주의해야할 점은, 일단 다운받은 애플리케이션은 Data Flow 서버에서 리소스 위치를 기반으로 로컬 캐시에 저장할 수도 있다. 리소스 위치가 바뀌지 않았다면 (실제 리소스 바이트는 다르더라도) 다시 다운로드하지 않는다. 반면 maven:// 리소스에서 constant 위치를 사용했다면 (-SNAPSHOT 버전 사용) 캐시도 우회할 수 있다 .

한 가지 더 말하자면, 이미 스트림을 배포해서 등록한 앱을 특정 버전으로 사용하고 있다면, 스트림을 다시 배포하기 전까지는 다른 앱을 (강제로) 재등록해도 아무런 효과가 없다.

Pre-packaged Applications

Pre-packaged Applications

미리 패키징해 제공하는 스트림 애플리케이션들 (3.x)

Pre-packaged Applications 2.x

Pre-packaged Applications 2.x

미리 패키징해 제공하는 스트림, 태스크 애플리케이션들 (Einstein release)

Migration Guide for Pre-packaged Stream Applications

aggregator-processor Migration

aggregator-processor 마이그레이션

ftp-source Migration

ftp-source 마이그레이션

header-enricher-processor Migration

header-enricher-processor 마이그레이션

http-source Migration

http-source 마이그레이션

cassandra-sink Migration

cassandra-sink 마이그레이션

image-recognition-processor Migration

image-recognition-processor 마이그레이션

jdbc-sink Migration

jdbc-sink 마이그레이션

jdbc-source Migration

jdbc-source 마이그레이션

jms-source Migration

jms-source 마이그레이션

load-generator-source Migration

load-generator-source 마이그레이션

log-sink Migration

log-sink 마이그레이션

mail-source Migration

mail-source 마이그레이션

mongodb-sink Migration

mongodb-sink 마이그레이션

cdc-debezium-source Migration

cdc-debezium-source 마이그레이션

mongodb-source Migration

mongodb-source 마이그레이션

mqtt-sink Migration

mqtt-sink 마이그레이션

mqtt-source Migration

mqtt-source 마이그레이션

object-detection-processor Migration

object-detection-processor 마이그레이션

pgcopy-sink Migration

pgcopy-sink 마이그레이션

rabbit-sink Migration

rabbit-sink 마이그레이션

rabbit-source Migration

rabbit-source 마이그레이션

router-sink Migration

router-sink 마이그레이션

s3-sink Migration

s3-sink 마이그레이션

s3-source Migration

s3-source 마이그레이션

sftp-sink Migration

sftp-sink 마이그레이션

sftp-source Migration

sftp-source 마이그레이션

splitter-processor Migration

splitter-processor 마이그레이션

syslog-source Migration

syslog-source 마이그레이션

tcp-sink Migration

tcp-sink 마이그레이션

tcp-source Migration

tcp-source 마이그레이션

throughput-sink Migration

throughput-sink 마이그레이션

time-source Migration

time-source 마이그레이션

file-sink Migration

file-sink 마이그레이션

websocket-sink Migration

websocket-sink 마이그레이션

file-source Migration

file-source 마이그레이션

filter-processor Migration

filter-processor 마이그레이션

ftp-sink Migration

ftp-sink 마이그레이션

Application Metadata

Application Metadata

애플리케이션 프로퍼티 메타데이터를 생성하고 사용해보기


Next :
Pre-packaged Applications
미리 패키징해 제공하는 스트림 애플리케이션(3.x) 목록과 벌크로 등록하는 방법

전체 목차는 여기에 있습니다.

<< >>

TOP