Page History
...
| Info |
|---|
테스트 코드를 통해 작동방법을 설명하고 수행합니다. 액터모델을 통해 다양한 장치를 이용해 작동하는 유용한 샘플코드를 살펴볼수 있습니다. 최근 코틀린과 AKKA오픈버전은 Pekko를 조합하여 코프링내에서 액터모델 탑재를 시도하고 있습니다. |
🎯 Akka의 분산처리 단순화 전략
1. ✅ 액터 모델 기반 격리 (Actor Isolation)
모든 상태와 처리를 액터 단위로 캡슐화
동시성과 병렬성을 락(lock) 없이 처리
분산에서도 동일한 추론 모델 사용 → 코드를 분산으로 쉽게 확장 가능
...
2. ✅ 클러스터링 지원 (Akka Cluster)
여러 노드를 하나의 논리적인 ActorSystem처럼 구성
노드 간 자동 등록, 탈퇴, 장애 감지, 재할당 등 제공
메시지를 보내는 방식은 단일 노드와 거의 동일
| Code Block | ||
|---|---|---|
| ||
[Node1] ↔ [Node2] ↔ [Node3]
│ │ │
HelloActor HelloActor HelloActor
|
3. ✅ Cluster Sharding
수천~수백만 개의 액터를 자동으로 클러스터 노드에 분산 배치
액터 위치를 몰라도 메시지 전송 가능 (
shardRegion ! msg)데이터/처리를 분산하고, 장애 복구 시 자동 재배치
...
4. ✅ Cluster Singleton
클러스터 전체에서 단 하나의 액터 인스턴스만 유지
중요한 상태나 리더 역할을 담당하는 서비스 구성에 사용
...
5. ✅ 메시지 기반 통신 (Location Transparency)
actorSelection이나ActorRef를 통해 위치를 몰라도 메시지 전송 가능지역(local)과 원격(remote)의 코드 차이를 최소화
...
6. ✅ Supervision & Fault Tolerance
각 액터가 자식 액터의 실패를 감시 (let it crash)
장애 격리와 자동 복구, 특히 분산 환경에서 안정성 확보에 강함
...
7. ✅ Persistence + Event Sourcing (선택적)
상태를 이벤트 로그로 저장하여 분산 시스템의 상태 일관성 확보
스냅샷, 이벤트 재생 등으로 빠른 복원 가능
...
🧠 한 줄 요약
"Akka는 복잡한 분산 처리 시스템을 액터라는 추상화된 단위로 나누고, 이들을 클러스터로 자동 연결하여 단일 시스템처럼 작동하게 만든다."
액터프로그래밍 활용사례
1. Scala: Akka 프레임워크
...
