보증

2017-11-13 6 views
0

는 가정 특정 상태에서, akka 배우 A는 아역 배우의 B를 생성 많은 참조를 포함하는 실제 데이터 객체 SmartDetails에서 변형되었습니다.보증

SmartDetailsBActor의 생성자에서 생성되고 지금 akka 배우 A에 전송해야합니다

A에 B에서 그것을

가되어 보낼 때 나는 SmartDetails 직렬화되지 않는다는 보장이 있어야합니다

이것은 akka에서 진행하는 유효한 방법입니까?
테스트를 거쳤습니다. 작동하지만 직렬화되지 않았습니다.

예를 들어 어디에서 문서를 찾고 있습니까? 하위 액터가 상위 액터와 동일한 프로세스에서 생성되고 직렬화가 수행되지 않는다는 설명을 찾을 수 있습니다.

SmartDetails이 너무 커서 메시지 SmartDetails이 직렬화되면 akka가 충돌합니다.

원래 RawDetails은 다른 액터로부터 직렬화 된 형식으로 나 왔으며 작은 단순 패킷으로 "배송"되었습니다.

답변

1

기본적으로 동일한 ActorSystem (동일한 프로세스 및 AppDomain) 내의 메시지는 직렬화되지 않으므로 불변의 것이 중요합니다.

문서는 "확인"섹션에서 그것 here 언급 로컬 액터 (즉 동일한 CLR)간에 전송

보통 메시지 직렬화를받지 않는이. 테스트를 위해 때로는 모든 메시지 (원격 및 로컬 모두)에 대해 강제로 직렬화하는 것이 바람직 할 수 있습니다.

그러나 원격/클러스터링을 통해 다른 액터 시스템으로 보낸 메시지는 일련 화됩니다.

+0

감사합니다. 이것은 정확히 내가 스스로 찾을 수없는 것입니다. – Gerard

+0

문제 없으니 기꺼이 도와주세요! – easuter