2017-05-21 2 views
0

인스턴스 데이터로 특정 키 값 쌍을 포함하는 AKKA 액터 인스턴스가있는 솔루션을 찾으려고합니다. 필요한 것은 인스턴스 데이터를 가지고있는 키를 대상으로 인스턴스 데이터를 업데이트 할 수 있어야한다는 것입니다. 하나의 액터는 하나의 키를 가지며 고유합니다. 일관된 해싱은 특정 액터를 포함하고있는 특정 노드로 라우팅 할 수 있지만 특정 액터로 전달하는 방법은 알 수 있습니까?AKKA 라우터가 일관된 라우팅을 사용하지만 특정 액터에게 메시지를 전달해야합니다.

Java에서 알아야 할 사항.

답변

4

일관된 해싱이 반드시 메시지의 일관된 해시를 1-1 관계의 액터에 매핑하지 않습니다. 더 많은 -1 관계입니다. 따라서 한 명의 배우가 여러 가지 다른 방법 (일관된 해시 생성 관점에서)의 경로가 될 수 있습니다. 또 다른 단점이 있습니다

  • 이 배우의 수의 변화에 ​​따라, 해시의 범위는 그들도 변경할 수 있습니다에 대한 책임이 있습니다, 그래서 동일한 메시지가 다른 배우에 의해 처리 될 수 있습니다 (크기를 조절 라우터에 관해서 꽤 약한 시간이 지남에 따라)
  • 메모리에 항상 액터가 있어야합니다. 귀하의 경우를 들어

, Cluster Sharding 무엇을 찾고 있는지, 가능성이 높습니다.

+0

놀라워요! 그 법안을 주 (stateful) 배우와 합치는 것, 샤드 작업 사이의 행위자 상태의 지속성 및 그것에 액세스 할 수있는 고유 한 ID가 있어야합니다. 지속성을 유지할 수 있습니다. 원하는대로 설정할 수도 있고, 이름으로 사용해야 할 수도 있습니다. 문서에 언급 된 경로? 너는 최고야! – Ram

+1

persistenceId의 경우 대상 액터/엔티티의 모든 구체화에 대해 동일하게 유지되는 고유 식별자가 필요합니다. 또한 소품을 통해 공급할 수 없으며 (소품은 샤드 지역 건설에 한 번만 제공되므로) 노드 주소에 의존 할 수 없습니다. 이는 재조정으로 인해 시간이 지남에 따라 변할 수 있습니다. 이러한 요구 사항을 어떻게 든 만족시킬 수 있다면 잘 할 수 있습니다. ActorPath는 접미사가 본질적으로 */// *이므로 각 엔티티마다 고유하지만 구현시 동일합니다. – Horusiath

관련 문제