Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

이 구조는 Akka의 강력한 비동기 메시징, 병렬성, 스로틀링, 에러 복원력, 계층적 구조를 적극 활용하여 Cafe24 API 기반 데이터 수집을 안정적이고 효율적으로 수행할 수 있도록 설계되었습니다.

최종작동

Image Removed

...


전체 작동 Flow

Image Added

  • 최초 한땀한땀 설계한 시퀀스 다이어그램과 작동 코드를 일치시킴
Note

위 그림을 다시 가독성이 좋게 그리고 구성별 역할별 분석

Image Added

✅ 전체 시나리오 요약

Kafka에서 수집 명령(CollectorCMD)이 발행되면, 이를 ProcessorActor가 수신하여 작업 단위를 그룹핑 및 분배하고, MallWorkActorApiWorkActor를 통해 API 호출을 처리하며, 작업 완료 여부를 검증 후 상태 업데이트 및 결과 업로드까지 담당하는 비동기 분산 작업 처리 흐름입니다.

...

🧱 구성 요소별 역할 분석

1. Kafka

  • 역할: 이벤트 발송 트리거

  • 기능: CollectorCMD 메시지를 발행하여, 수집/처리 작업을 시작하는 기점

  • 특징: 분산 메시지 브로커로서 ProcessorActor에 메시지를 전달

...

2. ProcessorActor

  • 역할: 중심 컨트롤러 역할의 액터 (집중 분배 및 상태 제어)

  • 기능:

    • CollectorCMD 수신

    • 채널/작업 단위로 그룹핑 (e.g. Mall 단위)

    • 다음 작업 존재 여부 확인 (HasNext)

    • 작업 시도 (Retry 최대 3회까지)

    • 결과 수신 후 StateUpdate작업결과 UPLOAD

  • 특징:

    • 상태기반 흐름 제어

    • Stream + Retry 패턴 내장

    • 분산 병렬 처리를 위한 분배기능 수행

...

3. MallWorkActor

  • 역할: 중간 그룹 단위 분배 및 Throttle 조절

  • 기능:

    • 메시지 발행기(MessagePublisherService)를 통해 각 API 작업을 라우팅

    • TPS 제한 설정 (Throttler 3TPS)

    • 라운드로빈 방식으로 ApiWorkActor에 작업 분배

  • 특징:

    • 속도 제한 및 부하 분산의 핵심 지점

    • TPS 조절로 백엔드 API 부하 보호

...

4. ApiWorkActor

  • 역할: 실제 API 호출 담당

  • 기능:

    • 외부/내부 API 호출 처리

    • 결과를 다시 MallWorkActor로 반환

  • 특징:

    • 단순 호출 전담 (Stateless)

    • TPS 3에 맞춰 분배된 요청만 처리

...

5. MessagePublisherService

  • 역할: 내부 메시지 브로커(로컬 또는 서드파티)

  • 기능: MallWorkActorApiWorkActor로 메시지를 라우팅할 때 사용

  • 특징:

    • Actor 간 직접 메시지 전달이 아닌 메시지 큐/버퍼링을 활용



보너스 아티컬 - 동일주제로 다른언어로 코드생성 시도

...