티스토리 뷰

1. Spring Batch 소개


Spring Batch는 엔터프라이즈 시스템의 일상적인 운영에 필수적인 강력한 배치 애플리케이션을 개발할 수 있도록 설계된 가볍고 포괄적인 batch framework 입니다. Spring Batch는 생산성 향상, POJO 기반 개발 접근법, 그리고 사람들이 Spring Framework에서 알게 된 일반적인 사용 편의성을 기반으로 하며 개발자가 필요한 경우 더 많은 고급 엔터프라이즈 서비스에 쉽게 액세스하고 활용할 수 있도록합니다.Spring Batch는 스케줄링 프레임 워크가 아닙니다. Quartz, Tivoli, Control-M 등과 같은 상용 및 공개 소스 공간에서 사용할 수 있는 많은 훌륭한 엔터프라이즈 스케줄러가 있습니다. 스케줄러를 대체하지 않고 스케줄러와 함께 작동하도록 설계되었습니다.


Spring Batch는 로깅 / 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너 뛰기 및 자원 관리를 포함하여 많은 양의 레코드를 처리하는 데 필수적인 재사용 가능한 기능을 제공합니다. 또한 최적화 및 파티셔닝 기술을 통해 대용량 및 고성능 일괄 작업을 가능하게하는 고급 기술 서비스 및 기능을 제공하며 단순하고 복잡한 대용량 배치 작어버은 프레임 워크를 확장성이 뛰어난 방식으로 활용하여 많은 양의 정보를 처리 할 수 있습니다.


2. 사용 시나리오


비즈니스 시나리오

      • 정기적으로 배치 프로세스 커밋
      • 동시 배치 처리 : 작업의 병렬 처리
      • 단계별 엔터프라이즈 메시지 기반 처리
      • 대량 병렬 처리
      • 장애 발생 후 수동 또는 예약 된 재시작
      • 종속 단계의 순차 처리 (워크 플로 기반 배치의 확장 포함)
      • 부분 처리 : 레코드 건너 뛰기 (e.g on rollback)
      • 전체 배치 트랜잭션 : 작은 배치 크리 또는 기존 저장 프로 시저 / 스크립트가 있는 경우

기술 목표

      • 프레임 워크가 인프라를 관리
      • 인프라, batch 처리 실행 환경 및 batch 처리 애플리케이션 간의 문제를 명확하게 구분
      • 모든 프로젝트가 구현할 수 있는 인터페이스로서 공통의 핵심 실행 서비스를 제공
      • '바로 사용할 수 있는' 핵심 실행 인터페이스의 간단하고 기본적인 구현을 제공 
      • 모든 계층의 스프링 프레임 워크를 활용하여 서비스 구성, 사용자 정의 및 확장이 용이
      • 기존의 모든 핵심 서비스는 인프라 계층에 영향을 미치지 않고 쉽게 교체하거나 확장 할 수 있어야 함
      • Maven을 사용하여 빌드 뒨 아키텍처 JAR을 애플리케이션과 완전히 분리하여 간단한 배치 모델을 제공

3. Spring Batch Architecture


Spring Batch Layered Architecture


Application 에는 Spring Batch를 사용하는 개발자가 작성한 모든 Batch 작업과 사용자 정의 코드가 들어있습니다.

Batch Core 에는 Batch 작업을 시작하고 제어하는데 필요한 핵심 런타임 클래스(JobLauncher, Job, Step)가 포함되어 있습니다.

Batch Infrastructure 에는 공통의 readers 와 writers 이 포함되어 있으며 응용 프로그램 개발자(ItemReader and ItemWriter)와 핵심 프레임워크 자체에서 사용되는 RetryTemplate와 같은 서비스가 포함



 

출처

   Spring Batch - Reference Documentation

 

URL

  https://docs.spring.io/spring-batch/trunk/reference/htmlsingle


'DEV > java&spring' 카테고리의 다른 글

[Spring Batch] 배치의 도메인 언어  (0) 2017.11.05
댓글