2012-10-24 2 views
1

EDIT : 아래에 설명 된 배우 생성은 데이터에 달려 있습니다. 때로는 처리자가 거의 필요하지 않으며 때로는 많은 경우가 있습니다.너무 많은 배우 생성을 다루는 방법

내가 작업하고있는 하나의 구성 요소는 처리 할 메시지의 양이 많은 액터 (라운드 로빈 라우트 된 것일 수도 있음)를 만들어야합니다. 각 액터는 초기화 매개 변수가 동일한 "처리 배치"에 속합니다.

많은 메시지가있는 프로덕션 시스템에서이 작업을 실행하면 많은 액터 생성 시간 초과가 발생합니다. 저는 ActorSystem.actorOf()으로 배우를 직접 만들고 있습니다.

놀랍지 만 비록 모든 사람들이 내가 만든 많은 액터가 없다고 생각합니다. (5 개의 라운드 로빈 라우팅 된 배우가있는 8 개의 "싱크대"는 40 명의 배우가 될 것입니다. 많은).

다른 배우 (처리중인 액터를 통해 얻는 성공과 실패의 양을 집계 함)를 사용하여 더 이상 필요하지 않은 액터를 닫을 예정입니다. PoisonPill을 보내면 그들은 모두 올바르게 폐쇄되었다.

내가 배우를 만드는 것과 같은 방식으로 여기 뭔가 잘못하고 있습니다. 다르게 만들어야합니까? 또는 새로운 전략을 만들기 전에 일부 배치가 완료 될 때까지 기다리는 것이 적절한 전략일까요?

답변