배치 서비스란?
- 데이터를 모아서 처리
- 이벤트에 맞춰 실행된다. (트리거)
- 스케줄
배치 서비스 기본 3단계
- [Read] 많은 데이터를 데이터베이스, 파일, 메세지로부터 읽는다.
- [Processing] 읽은 데이터를 로직에 의해 처리한다.
- [Write] 로직으로 처리된 데이터를 수정된 형태로 출력한다.
배치와 우리 일상
- 주기적인 은행 업무
- 쇼핑몰 알림
- 세금 고지서 일괄 처리
- 마트의 최저가 보상 처리
- 성적 일괄 처리
이커머스에서의 배치
- 기획전 전시
- 쿠폰 발행
- 고객의 포인트 적립, 환불
- 등록된 상품의 이미지 처리
- 판매자 정산
- 상품 진열
- 상품 검색 인덱싱
- 홈페이지 광고나 배너
배치의 특징
- UI가 없다. (별도 UI툴 사용 가능)
- 대량의 데이터를 모아서 처리한다.
- 정해진 스케쥴에 맞춰 동작한다.
- 한 번 시작하면 어떻게든 종료된다.
배치 시스템 종류
배치 프로그램의 구성
배치 처리
- 일련의 작업을 모아서 일괄로 처리하는 것
배치 스케줄러
- 정해진 시간에 이벤트를 발생하는 것
- 배치가 실행되도록 트리거 역할
배치 처리를 위해 사용되는 도구들
- Cron
- 스케줄에 따라 명령어 또는 프로그램 실행을 해주는 데몬 프로세스
- 스케줄
- 특정 시간
- 반복
- Crontab
- Cron 작업을 설정하는 파일
- Cron이 Crontab 파일을 읽어서 처리
- 리눅스의 스케줄러 도구
- 시간, 날짜, 간격에 따라 주기적으로 실행
- 스케줄 설정은 unix-cron 문자열 형식
-
-
-
-
- *을 사용
-
-
-
-
- : 모든 값 표현
- 콤마( , ) : 값 목록 표현
- 대시( - ) : 범위 표현
- Crontab 스케줄 설정샘플 일정 크론 작업 형식
1분마다 * * * * * 매주 토요일 23:45(오후 11:45) 45 23 * * 6 매주 월요일 09:00(오전 09:00) 0 9 * * 1 매주 일요일 04:05(오전 04:05) 5 4 * * SUN 매주 토요일 23:45(오후 11:45) 0 22 * * 1-5 - https://crontab/guru/examples.html
- Quartz
- Job Scheduling 라이브러리
- 기능 목록
- Job Scheduling
- Job Execution
- Job Persistence
- Transactions
- Jenkins
- 오픈소스 자동화 서버
- 빌드, 배포, 자동화에 널리 사용됨
- 스케줄 기능을 포함하고 있음
- 기타 트리거를 활용한 프로그램 실행
- Spring Batch
- 액센추어 회사가 배치 처리 전문 지식을 오픈소스로 개발
- 2008년 3월말 스프링 배치 1.0.0 출시
- 자바 세계의 최초 배치 처리에 대한 표준 기반 접근
- Job, Step, Tasklet
- ItenReader
- ItemProcessor
- ItemWriter
- 현재 최신 버전은 5.0.0
'WEB > SPRING' 카테고리의 다른 글
스프링 배치 (0) | 2023.05.14 |
---|---|
Springboot properties 파일 분리 (local, prod, ...) (0) | 2023.03.17 |
Springboot에서 java-email 활용하기 (0) | 2022.11.21 |
[Spring] AOP 프로그래밍 (0) | 2022.06.03 |
[Spring] 빈(Bean) 🟢 (0) | 2022.06.03 |
댓글