2013-11-20 2 views
6

Akka 액터를 사용하여 동일한 JVM의 Java 스레드간에 이벤트를 전달하려고합니다. 이 이벤트 중 일부는 대형 오브젝트 (10-100Mb)를 포함합니다. 개체에 대한 참조 만 전달하여 메모리 공간을 절약하면서 이러한 개체를 직렬화하지 않도록하고 싶습니다. Akka가 이것을 지원합니까? 나는 implement 사용자 지정 Akka 시리얼 라이저를 사용할 수 있음을 알고 있으며 해결책이 될 수는 있지만 프레임 워크에 대해 많이 알지 못합니다.Akka는 객체 직렬화가없는 프로세스 내 메시징을 지원합니까?

+0

참조를 전달하면 스레드간에 공유 상태가 발생하므로 메시지 전달 모델이 완전히 저주합니다. –

+3

나도 알아,하지만 내가 지나가는 객체에는 불변의 값이 포함되어있다. 액터간에 직렬화하고 재구성하는 것은 의미가 없다. – raffian

+0

공유 상태는 변경할 수없는 한 문제가 없습니다. 문제는 _shared mutable_ state_입니다. 공유 또는 변경 가능한 중 하나를 도랑, 당신은 확고한 근거에있어. –

답변

6

Akka는 메시지 직렬화기를 포함하는 원격 기계를 우회하여 로컬 메시지 전달을 최적화로 처리합니다. location transparency을 참조하십시오.

+1

방금 ​​테스트를했는데 정확합니다. 전송 된 객체는 메모리 주소를 기반으로받은 객체와 동일합니다. – raffian

+1

문서화 된 곳이 있습니까? – jhegedus

관련 문제