pooney
article thumbnail
[Spring-Batch] Multi-threaded Step을 이용한 병렬 처리
Spring boot/spring-batch 2024. 12. 16. 21:33

안녕하세요. 오늘은 대용량의 데이터를 빠르게 처리 하기 위해 배치를 구성해야 하는 경우가 많은데요. 이러한 병렬처리가 를 하기 위한 Multi-Threaded Step 방식에 대해서 알아 보려고합니다.       Multi-Threaded Step 하나의 Step에서 멀티스레드를 사용해 ItemReader, ItemProcessor, ItemWriter를 병렬로 실행해 동일한 데이터 소스를 여러 스레드가 동시에 일고 처리 하는 기능을 제공합니다.   즉 Multi-threaded Step은 단일 Step에서 여러 쓰레드를 병렬로 실행하여 작업을 처리하는 방식입니다. 자세한 설명은 아래의 Spring docs에 자세히 설명 되어 있으니 참고해 보는 것도 좋을 것 같습니다.    https://docs.sp..

article thumbnail
[Spring-Batch] Partitioning을 이용한 대량의 데이터 처리
Spring boot/spring-batch 2024. 12. 16. 21:27

안녕하세요. 오늘은 Spring Batch를 이용한 Partitioning에 대해서 작성해 보려고 합니다. 프로젝트를 진행하면서 대용량의 데이터를 처리해야 할 일이 발생을 했는데요.  대용량을 빠르게 처리 하기 위해서 흔히 병렬적으로 처리하는 방법을 사용하는 경우가 많습니다. 병렬적으로 처리 하기 위해 대표적인 Scalling 기능인  Multi-Threaded Step 방식도 많이 생각 하실 겁니다. 하지만 이번에는 Partitioning 기능을 이용한 방법에 대해서 알아 보려고  합니다.        Partitioning데이터를 물리적으로 분할하여 각 파티션을 별개의 Step으로 처리하는 방식입니다. 각 파티션은 독립적으로 실행되며, 멀티스레드 환경 또는 클러스터링 환경에서 실행될 수 있도록 제공하..

article thumbnail
Spring Batch - Rest API JOB 구성
Spring boot/spring-batch 2023. 8. 27. 18:32

프로젝트를 진행하면서 Batch를 구성해야하는 경우가 많은데요. 대부분 Job을 구성 할때 DB를 조회하는 JdbcItemReader, Jdbccursoritemreader, Jdbcpagingitemreader등을 이용해서 만드는 경우가 많았습니다. 간혹 저의 경우 외부 Data를 받기 위해 API를 호출하고 받은 Response Data를 저희 DB에 넣어서 동기화하는 Job을 구성해야 하는 경우가 있었는데요. 대부분은 DB에서 read해서 Db에 write를 하는 글은 많이 보이지만 외부 연동이 들어가는 Job은 어떻게 구성을 해야하는지 잘 보이지 않아 공부 할 겸 글로 작성해보려고 합니다. 틀린 부분 이 있을 수 있으니 감안해주시면 감사하겠습니다. 요구조건 외부 Rest API를 통해 데이터를 받..

article thumbnail
Spring boot - Spring Batch + Quartz 실행
Spring boot/spring-batch 2022. 7. 1. 13:57

안녕하세요 오늘은 Spring Batch 와 스케줄라 Quartz를 결합하여 사용하는 방법을 알려 드릴려고 합니다. 보통 Batch , Quartz를 각 각 사용하는 방법은 쉽게 찾을 수 있지만 그 두개를 결합하여 사용하는 방법은 찾기가 힘들어 많은 검색을 통한 Batch + Quartz 결합 방법을 알려드리고자 합니다. 이글을 보시기전에 제가 작성한 Batch와 Quartz를 보고 오시는 것을 추천드립니다. 그것을 기반으로 진행할 것이기 때문입니다. Spring Batch + Quartz 예전에 작성한 Quartz 구성에서 빨간색 부분이 Batch를 사용하기 위해서 생성된 class 입니다. build.gradle dependencies { implementation 'org.springframewor..

article thumbnail
Spring boot - Spring boot + Quartz 스케줄러 배치 구성
Spring boot/spring-batch 2022. 6. 30. 16:01

스케줄러 Quartz를 사용하는 방법을 알아 보려고 합니다. 사람들이 배치와 스케줄러를 많이 혼동 하시는데 다른 개념이라 고 보시면됩니다. 차이점은 아래 주소를 통해 확인해주세요 https://pooney.tistory.com/96 Spring boot - Spring Batch란? 안녕하세요 오늘은 많이 사용하는 Spring Batch를 설명해 드릴려고 합니다. Batch를 사용하기 위해선 스케줄러를 같이 사용하는데 대표적으로 아래와 같습니다 쉽게 어노테이션으로 사용가능 한 @Sch pooney.tistory.com 스케줄러 Quartz를 사용하는 이유는 무엇일까요? 간단하게 스프링에서 제공해주는 @Scheduled를 통해서 사용 할 수 있는데 말이죠. 저는 아래에 내용인거 같습니다. 장점 In-mem..

article thumbnail
Spring boot - Spring Batch란?
Spring boot/spring-batch 2022. 6. 20. 22:16

안녕하세요 오늘은 많이 사용하는 Spring Batch를 설명해 드릴려고 합니다. Batch를 사용하기 위해선 스케줄러를 같이 사용하는데 대표적으로 아래와 같습니다 쉽게 어노테이션으로 사용가능 한 @Scheduled DB 클러스터링을 도와주는 Quartz CI/CD 젠킨스 Batch + Scheduler 는 나중에 설명해 드리도록 하고 우선 들어가기전 Batch 와 스케줄러에 대해서 혼란 스러운 분들을 위하여 간단하게 설명하겠습니다. Batch란? 우리는 흔히 일을 진행하면서 아래와 같은 작업이 필요한경우 가 발생합니다. 많은 양의 데이터를 처리한 결과값을 저장하거나 이러한 결과를 사용자에게 보여줘야하는경우 배송중인 상태로 5일이 지나면 배송완료 상태로 변경 구매완료 7일 이후 자동 구매확정 서비스를 운..