Page History
...
이 구조는 Akka의 강력한 비동기 메시징, 병렬성, 스로틀링, 에러 복원력, 계층적 구조를 적극 활용하여 Cafe24 API 기반 데이터 수집을 안정적이고 효율적으로 수행할 수 있도록 설계되었습니다.
최종작동
...
전체 작동 Flow
- 최초 한땀한땀 설계한 시퀀스 다이어그램과 작동 코드를 일치시킴
| Note |
|---|
위 그림을 다시 가독성이 좋게 그리고 구성별 역할별 분석 |
✅ 전체 시나리오 요약
Kafka에서 수집 명령(CollectorCMD)이 발행되면, 이를 ProcessorActor가 수신하여 작업 단위를 그룹핑 및 분배하고, MallWorkActor → ApiWorkActor를 통해 API 호출을 처리하며, 작업 완료 여부를 검증 후 상태 업데이트 및 결과 업로드까지 담당하는 비동기 분산 작업 처리 흐름입니다.
...
🧱 구성 요소별 역할 분석
1. Kafka
역할: 이벤트 발송 트리거
기능:
CollectorCMD메시지를 발행하여, 수집/처리 작업을 시작하는 기점특징: 분산 메시지 브로커로서
ProcessorActor에 메시지를 전달
...
2. ProcessorActor
역할: 중심 컨트롤러 역할의 액터 (집중 분배 및 상태 제어)
기능:
CollectorCMD수신채널/작업 단위로 그룹핑 (e.g. Mall 단위)
다음 작업 존재 여부 확인 (
HasNext)작업 시도 (
Retry최대 3회까지)결과 수신 후
StateUpdate및작업결과 UPLOAD
특징:
상태기반 흐름 제어
Stream + Retry 패턴 내장
분산 병렬 처리를 위한 분배기능 수행
...
3. MallWorkActor
역할: 중간 그룹 단위 분배 및 Throttle 조절
기능:
메시지 발행기(
MessagePublisherService)를 통해 각 API 작업을 라우팅TPS 제한 설정 (
Throttler3TPS)라운드로빈 방식으로
ApiWorkActor에 작업 분배
특징:
속도 제한 및 부하 분산의 핵심 지점
TPS 조절로 백엔드 API 부하 보호
...
4. ApiWorkActor
역할: 실제 API 호출 담당
기능:
외부/내부 API 호출 처리
결과를 다시
MallWorkActor로 반환
특징:
단순 호출 전담 (Stateless)
TPS 3에 맞춰 분배된 요청만 처리
...
5. MessagePublisherService
역할: 내부 메시지 브로커(로컬 또는 서드파티)
기능:
MallWorkActor가ApiWorkActor로 메시지를 라우팅할 때 사용특징:
Actor 간 직접 메시지 전달이 아닌 메시지 큐/버퍼링을 활용
보너스 아티컬 - 동일주제로 다른언어로 코드생성 시도
...
