2016-06-08 3 views
0

나는 현재 Akka와 놀고있다. 내 목표는 전보 봇을 만들고 각 채팅의 상태를 별도의 Akka-Actor로 처리하는 것입니다.Akka-Actors를 만들 패턴이 있습니까?

전보 (電信)에서 메시지를 받고 그 액터에게 메시지를 전달하는 구성 요소가 있습니다. 따라서 새로운 채팅마다 배우를 만들어야합니다. 액터가 존재하는지 여부는 신경 쓰지 않아야하므로 Telegram-Query-Component에서이를 수행하고 싶지 않습니다.
액터에 대한 경로는 클라이언트/클라이언트 ID과 같을 수 있습니다. Telegram-Component에서 경로로 메시지를 보내면 현재 데드 큐에 있습니다.

클라이언트 - 자식 배우가없는 경우 메시지가 끝나는 방법이 있습니까? 액터가 존재하지 않으면 자동으로 액터를 만드는 또 다른 방법이 있습니까?
그리고 : Akka 환경에서 내 "문제"에 대한 일반적인 해결책은 무엇입니까? 레지스트리와 비슷한 것을 가지고 있거나 고객을 통해 모든 메시지를 라우팅하십시오. -parent-actor per default?
도움을 주셔서 감사합니다. 마이클

답변

0

Akka 클러스터링은이를 수행합니다. 액터가 메시지를 보내면 액터가 만들어집니다.

필자는 메시지를 라우팅하고 필요한 경우 수신자를 생성하는 액터를 만들었습니다. 이 작업을 자동으로 수행하는 클러스터링 밖에는 아무 것도 없다고 생각하지만 구현하기 어렵지 않습니다.

+0

그리고 경로마다 액터 1 개를 생성하도록 설정할 수 있으므로 주어진 워크 플로우의 상태를 유지 관리하는 모든 채팅/클라이언트 ID에 대해 액터를 가질 수 있습니까? – Michael

+0

자세한 것은, 이것을하는 클러스터 샤딩입니다. 이를 사용하면 엔티티가 노드를 통해 이동 될 수 있으므로 * 엔티티 * 액터를 참조하게됩니다. 엔터티에 메시지를 보낼 때마다 자동으로 만들어집니다. 자세한 내용은 다음 문서를 참조하십시오. http://doc.akka.io/docs/akka/2.4.7/scala/cluster-sharding.html –

관련 문제