inflearn logo
강의

Course

Instructor

Spring Batch

Partitioning (2)

파티셔닝의 사용 케이스가 어떻게 될까요?

445

mj Song

7 asked

0

안녕하세요 강사님!
강의 잘보고 있습니다!
 
파티셔닝에 대해 학습하게 되었고 장점도 잘 알겠는데
보통 실무에서 몇만건 정도 처리를 할때 파티셔닝을
적용해도 되겠다싶을까요?
 
상황마다 다르겠지만 대략적으로 궁금합니다

배치 spring-boot 파티셔닝 spring-batch

Answer 2

1

leaven

파티셔닝 기능은 멀티 스레드 환경에서 사용코자 할 때 구성할 수 있습니다.

이 의미는 비단 스프링 배치 뿐 아니라 대용량 혹은 동시적 요청이 많이 발생할 경우 고려 할 수 있습니다.

물론 대용량의 기준이 상대적인 기준이긴 하지만 어떤 정해진 시간이나 정해진 성능의 기준안에 처리가 되어야 하는 데이터 양을 파악해서 단일 스레드로 충분히 처리가 가능하다면 굳이 복잡한 멀티스레드로 할 필요가 없을 것이며 단일스레드로 처리가 어렵다면 멀티스레드로 고려해 봐야 한다고 생각합니다.

보통 배치같은 경우는 실시간 적인 처리나 응답을 요하는 경우보다는 통계처리나 로그 분석같은 비 실시간 데이터 처리에 주로 사용된다고 가정한다면 멀티스레드로 구성하지 않아도 됩니다.

다만 시간적인 개념을 떠나서 단일스레드에 비해 멀티스레드가 더 효율적인 처리를 보장한다면 파티셔닝 같은 기능을 사용하는 것이 좋습니다.

실무에서 천단위나, 만단위는 그렇게 대용량이 아닐 것이고 최소 수십에서 수백만건 이상일 경우 멀티스레드를 고려해 보게 됩니다.

하지만 모든 것은 현 시스템의 상황과 환경을 충분히 검토해서 기술적 판단을 내려야 하기 때문에 단순히 데이터양으로만 결정하지는 않습니다.

어떤 면에서는 데이터양 뿐 아니라 배치의 처리를 각 스레드별로 할당해서 비동기 처리를 하기 위한 목적도 있습니다.

 

0

mj Song

감사합니다 강사님

가장 궁금했던 내용의 핵심을 짚어주셨습니다.

스프링 배치 버전 질문

0

122

1

소스코드가 어디에 있나요?

0

96

2

트랜잭션 예외

0

92

1

질문이 있습니다.

0

130

2

ChunkListener 에서 beforeChunk 의 실행 시점 관련 질문

0

125

2

여러 JOB 설정하는법

0

150

2

강의 자료 다른 방법 있을까요?

0

154

1

JobExecution과 JobExecutionContext와의 관계

0

186

2

특정 job만 실행

1

252

1

Batch 성능 질문

0

153

1

ItemReaderAdapter 종료

0

80

1

[ 강좌 Git 브랜치 문의 ] 섹션 9 > JdbcCursorItemReader, JpaCursorItemReader

0

179

2

Spring Batch 배포 질문

0

245

2

spring batch 버전

0

236

2

retry count 관련 질문

0

172

2

StepExecutionListener 의 afterStep 에서 return ExitStatus.FAILED 에 의한 동작에 의문이 갑니다.

0

330

2

jdbc, jpa 커서방식 조회 방식 차이 질문 (강사님께 답변 받고 싶습니다)

0

235

2

Multithread step과 AsyncItemProcessor

0

203

2

job 재실행

0

251

2

bean 생명주기 문제 도와주세요(@Scope("step"), @Autowired)

0

183

1

Multi-threaded-step과 Partitioning 차이 확인

0

175

2

jdbcCursorReader, jdbcPagingReader 질문

0

146

1

step muti-thread 질문

0

110

1

itemSteam open update close 질문

0

112

1