2014-09-30 3 views
3

저는 Akka 액터를 기반으로 한 이벤트 처리 파이프 라인을 만들고 있습니다. FilterWorker, EnrichWorker 및 ProcessWorker와 같이 파이프 라인의 각 단계마다 3 명의 액터가 있습니다. 이벤트가 파이프 라인의 한 단계에서 다음 단계로 전송되도록 감독자 액터가 추가되었습니다.액터 시스템의 데이터 저장소

풍부한 데이터를 얻기 위해 일부 외부 데이터베이스를 쿼리하거나 유지하려는 새 데이터를 생성해야 할 수도 있습니다. 예를 들어, 웹 분석 시스템의 풍부한 단계는 해당 사용자 정보를 클릭하여 데이터베이스에 저장 한 사용자의 클릭 이벤트를 풍부하게 만들 수 있습니다. 마음에

키핑 그 예를 들어, 나는 다음과 같은 옵션 참조 : 싱글 1. 한

을; 예 : 지금까지 수집 된 모든 사용자를 메모리에 저장하고 잠시 동안 데이터베이스에 저장하는 UserStore. 아직 메모리에 있지 않은 사용자를 불러올 수있는 모든 논리가 있습니다. 그러나 배우 시스템에서 싱글 톤을 사용하는 것은 좋은 생각처럼 보이지 않습니다 (?).

  1. 상점 배우를 사용하십시오. tell을 사용하여 새 사용자를 추가하고 가져 오도록 요청하십시오.

더 좋은 패턴이 있습니까?

감사합니다.

+1

UserStore 아이디어는 하나의 인스턴스 만 유지하는 액터 일 수도 있습니다. – johanandren

+0

@ johanandren 맞아, 그럼이게 내 선택 2와 비슷한거야? – FabioC

+0

Yepp이며, 액터와 잘 어울리는 일종의 사용자 캐시 인 가변적 인 상태를 원할 수도 있습니다. – johanandren

답변

1

이 답변을 남겨 두지 않기 위해 두 번째 옵션과 johanandren의 제안에 따라 액터가 데이터 저장소 역할을 수행하도록 제안했습니다. 꽤 잘 작동합니다!