본문 바로가기

Spring Batch5

스프링 배치 이모저모 스프링 배치 선택이유 - 우리 팀에서 익숙하게 사용하고 있는 Spring Framework의 특성을 기반으로 하고 있기 때문에 사용에 용이 - 스케줄 실패 후 skip, retry 기능 제공 - chunk 기반으로 트랜젝션 관리 가능 스케줄러 선택 1. jenkins - 많은 곳에서 실제로 많이 사용하는 방식 - 내가 사용 하고 싶은 스케줄러 - 파이프 라인 기능 A 스케줄 실행이 완료 후에 B스케줄를 실행해야 할 경우가 꽤 많은데 Step으로 연결 해줄 수도 있지만 파이프 라인을 이용하면 각자 Job으로 생성 후 파이프라이으로 연결이 가능 2. 쿼츠 + admin - 가장 무난해보이는 방식 - 무중단 배포 가능 여부 모름 - Quartz 내장 클러스터링 기능은 로드 밸런싱 및 페일 오버를 지원한다. 이.. 2022. 12. 7.
4 ) JobInstance Job, Step, Flow, Tasklet은 비지니스 로직을 실행하게끔 한다. Job, Step, Flow, Tasklet을 실행할때 상태 정보와 실행 정보를 시점 마다(미리 존재하는게 아님) DB에 저장하기 위해서 생성되는 도메인이 JobInstance, JobExcution, StepExcution이다. 메타 데이터를 저장한다. 1. 기본 개념 Job 이 실행될 때 생성되는 Job 의 논리적 실행 단위 객체로서 고유하게 식별 가능한 작업 실행을 나타냄 Job 의 설정과 구성은 동일하지만 Job 이 실행되는 시점에 처리하는 내용은 다르기 때문에 Job 의 실행을 구분해야 함 예를 들어 하루에 한 번 씩 배치 Job이 실행된다면 매일 실행되는 각각의 Job 을 JobInstance 로 표현합니다. Jo.. 2022. 8. 27.
3 ) 코어 레이어의 컴포넌트 - 잡과 스텝 Step (스텝) Excample : 업무 시간 이후에 고객의 은행 계좌를 처리하는 사례 step1 : 다른 시스템에서 수신한 거래 정보 파일을 읽어와 데이터 베이스에 저장한다. step2 : 모든 입금 정보를 계좌에 반영한다. step3 : 모든 출근 정보를 계좌에 반영한다. 각 스템은 잡을 구성하는 독립된 작업의 단위 태스크릿(tasklet) 기반 스텝 구조가 더 간단 태스크릿(tasklet) 기반 스텝을 사용할려면 Tasklet을 구현하면 되는데, 스텝이 중지 될때까지 exeute 메서드가 계속 반복해서(exeute 메서드를 호출 할때마다 독립적인 트랜잭션이 얻어짐) 수행된다. 초기화, 저장 프로시저 실행, 알림 전송등과 같은 잡에서 일반적으로 사용 청크(chunk)기반 스텝 아이템 기반 처리에 사.. 2022. 7. 20.
2 ) 스프링 배치 프레임워크 스프링 배치 프레임워크 일반적인 배치 패턴및 패러다임을 구현하는 표준 기반 방법 스프링 배치 데이터 유효성 검증, 출력 포매팅, 복잡한 규칙을 재사용 가능한 방식으로 구현하는 기능, 대규모 데이터 셋 처리 기능이 구현되어 있음 스프링 배치는 레이어 구조로 조립된 3개의 티어로 이뤄져있다. 1. 애플리케이션 레이어 배치 처리 구축에 사용되는 모든 사용자 코드 및 구성이 이 레이어에 포함된다. 업무 로직, 서비스등은 물론 잡 구조화와 관련된 구성 까지도 애플리케이션 레이어에 포함된다. 해당 레이어는 다른 두 레이어를 감싸고 있다. 그 이유는 개발자가 개발하는 대부분의 코드가 코어 레이어와 함께동 작하는 애플리케이션 레이어지만 때로는 커스텀 리더, 커스텀 라이터와 같이 인프라스트럭처의 일부를 만들기도한다. 해.. 2022. 7. 19.
1 ) Job 기본 개념 배치 계층 구조에서 가장 상위 개념, 하나의 배치 작업 자체를 의미 ex) "API 서버의 접속 로그 데이터를 통계 서버로 옮기는 배치"인 job자체를 의미 Job Configuration을 통해 생성되는 객체 단위 배치 작업을 어떻게 구성하고 실행할 것인지 전체적으로 설정하고 명세해 놓은 객체(설계도) 배치 Job을 구성하기 위한 최상위 인터페이스이며 스프링 배치가 기본 구현체를 제공 여러 step을 포함하고있는 컨테이너, 반드시 한개 이상의 step으로 구성해야함 기본 구현체 SimpleJob 순차적으로 step을 실행시키는 Job 모든 Job에서 유용하게 사용할 수 있는 표준 기능을 가지고 있음 step1 -> step2 -> step3 FlowJob 특정한 조건과 흐름에 따라 Step을.. 2022. 7. 14.