Java
Spring Batch - 시작
내이름효주
2024. 4. 23. 13:30
- Spring Batch: 대량의 데이터 처리를 위한 경량화된 프레임워크
- 반복적인 작업을 수행하는 일괄 처리(Batch Processing) 작업을 효율적으로 처리할 수 있는 기능을 제공
- 대용량 데이터 처리나 주기적인 업무 처리 등을 효율적으로 처리할 수 있고, 대용량 데이터 처리에 적합한 분산 방식의 처리를 지원
➡ 대용량 데이터 처리, 트랜잭션 관리, 재시도 기능 - ex) 회원가입 ➡ 일반
광고메일 ➡ 배치(주에 한번씩 회원들에게 메일발송) - 시나리오
- 배치 프로세스 주기적으로 커밋
- 동시 다발적 Job의 배치 처리, 대용량 병렬 처리
- 실패 후 수동 or 스케줄링에 의한 재시작
- 의존관계가 있는 step 여러개 순차적 처리
- 조건적 Flow 구성을 통해 배치 모델 구성
- 반복, 재시도, Skip
- 구성
- @EnableBatchProcessing: 스프링 배치가 작동하기 위해 선언해야 하는 어노테이션
- 스프링 부트 배치의 자동 설정 클래스가 실행됨으로써 빈으로 등록된 모든 Job을 검색해서 초기화와 동시에 Job을 수행하도록 구성된다.
- @EnableBatchProcessing: 스프링 배치가 작동하기 위해 선언해야 하는 어노테이션
- 스프링 배치 초기화 설정 클래스
- BatchAutoConfiguration
- 스프링 배치가 초기화 될 때 자동으로 실행되는 설정 클래스
- job을 수행하는 JobLauncherApplicationRunner 빈을 생성
- SimpleBatchConfiguration
- JobBuilderFactory(Job)와 StepBuilderFactory(Step)생성
- 스프링 배치의 주요 구성 요소 생성 - 프록시 객체로 생성???
- BatchConfigurerConfiguration
- BatchAutoConfiguration
- Spring Batch 시작!!
- Job(일)구동 ➡ Step(일의 항목, 단계) 실행 ➡ Tasklet(Step 안에서 단일 테스크로 수행, 진행 내용) 실행
- @Configuration 선언 - 하나의 배치 Job을 정의하고 빈을 설정