파티셔닝의 사용 케이스가 어떻게 될까요?
445
7 asked
Answer 2
1
네
파티셔닝 기능은 멀티 스레드 환경에서 사용코자 할 때 구성할 수 있습니다.
이 의미는 비단 스프링 배치 뿐 아니라 대용량 혹은 동시적 요청이 많이 발생할 경우 고려 할 수 있습니다.
물론 대용량의 기준이 상대적인 기준이긴 하지만 어떤 정해진 시간이나 정해진 성능의 기준안에 처리가 되어야 하는 데이터 양을 파악해서 단일 스레드로 충분히 처리가 가능하다면 굳이 복잡한 멀티스레드로 할 필요가 없을 것이며 단일스레드로 처리가 어렵다면 멀티스레드로 고려해 봐야 한다고 생각합니다.
보통 배치같은 경우는 실시간 적인 처리나 응답을 요하는 경우보다는 통계처리나 로그 분석같은 비 실시간 데이터 처리에 주로 사용된다고 가정한다면 멀티스레드로 구성하지 않아도 됩니다.
다만 시간적인 개념을 떠나서 단일스레드에 비해 멀티스레드가 더 효율적인 처리를 보장한다면 파티셔닝 같은 기능을 사용하는 것이 좋습니다.
실무에서 천단위나, 만단위는 그렇게 대용량이 아닐 것이고 최소 수십에서 수백만건 이상일 경우 멀티스레드를 고려해 보게 됩니다.
하지만 모든 것은 현 시스템의 상황과 환경을 충분히 검토해서 기술적 판단을 내려야 하기 때문에 단순히 데이터양으로만 결정하지는 않습니다.
어떤 면에서는 데이터양 뿐 아니라 배치의 처리를 각 스레드별로 할당해서 비동기 처리를 하기 위한 목적도 있습니다.
스프링 배치 버전 질문
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

