
246
이벤트 기반 마이크로서비스 구축
상태 비저장 스트리밍 애플리케이션은 규모를 확장/축소하기가 아주 쉽습니다. 처리 리소스가
컨슈머 그룹에 (서) 가입/탈퇴하는 것만으로도 리밸런스가 일어나 파티션이 재할당되고 스트
리밍이 재개됩니다. 상태 저장 애플리케이션은 애플리케이션에 할당된 워커에 상태를 로드해
야 할뿐만 아니라 그렇게 로드된 상태를 입력 이벤트 스트림의 파티션 할당과 맞추어야 하므로
처리하기가 더 어렵습니다.
지금부터 상태 저장 애플리케이션을 확장하는 두 가지 주요 전략을 살펴보겠습니다. 세부 기술
사양은 다르지만 애플리케이션 다운타임을 최소화한다는 목표는 같습니다.
11.7.1
애플리케이션 실행 중 확장
첫 번째 전략은 애플리케이션을 멈추거나 처리 정확도에 영향을 주지 않고 애플리케이션의 인
스턴스를 추가, 삭제, 재할당하는 것입니다. 상태와 셔플된 이벤트 모두 정교하게 잘 처리해야
하므로 일부 대용량 스트리밍 프레임워크에서만 가능한 작업입니다. 인스턴스를 추가/삭제하
려면 할당된 스트림 파티션을 전부 재배포하고 최종 체크포인트 다음부터 상태를 다시 로드해
야 합니다. [그림
11
-
6
]은 다운스트림의
reduce
작업이 업스트림의
groupByKey
작업 결과
셔플된 이벤트를 소싱하는 일반적인 셔플입니다. 업스트림 인스턴스 중 하나라도 갑자기 멎으 ...