2017-09-16 12 views
0

저는 Akka 클러스터링과 개념 증명 작업에 새로운 경험이 있습니다. 제 경우에는 클러스터에서 실행중인 액터가 있고 액터의 상태는 Map [String, Any]입니다. 따라서 요청에 대해 액터는 들어오는 메시지를 기반으로 액터에게 새로운 엔터티 액터와 데이터 맵을 생성합니다. 여기서 문제는지도가 바로 지금 메모리에 있다는 것입니다. redis 또는 ignite 어딘가에 sharded 배우 상태를 저장할 수 있습니까?akka sharded 액터 상태를 외부화하거나 발화시키는 방법?

답변

0

akka-persistence (akka에 포함 된 지속성 모듈)를 살펴 보는 것으로 시작해야합니다. 스냅 샷 부분은 상태를 직접 유지하기위한 것이지만 명령/이벤트 소싱 부분부터 시작해야합니다. 스냅 샷 부분은 선택 사항입니다.

그런 다음 일정 비활성 시간 초과 후 샤드 액터의 자동 패시베이션과 함께 사용할 수 있습니다.

위와 같이 외장형 스토리지 시스템에있는 배우의 상태를 유지하여 메모리를 확보하고 배우의 상태가 복원 될 때마다 복원 할 수있는 솔루션이 제공됩니다.

마지막 단계는 akka-persistence에 사용할 수있는 저장소 백엔드를 확인하고 요구 사항을 충족시키는 것입니다. 물론 직접 구현할 수도 있습니다.