Я пытаюсь сериализовать/десериализовать ActorRef через protobuf. Согласно документу Akka, единственный способ сделать это — преобразовать ActorRef в String и преобразовать его обратно в систему удаленного актера.
В документе упоминается использование ExtendedActorSystem
для десериализации (см. здесь а>). Однако неясно, как получить ExtendedActorSystem
:
// Serialize
// (beneath toBinary)
val identifier: String = Serialization.serializedActorPath(theActorRef)
// Then just serialize the identifier however you like
// Deserialize
// (beneath fromBinary)
// ==== Where is this extendedSystem from? ====
val deserializedActorRef = extendedSystem.provider.resolveActorRef(identifier)
// Then just use the ActorRef
Изменить
Я нашел этот вопрос здесь: Akka (JVM): сериализуйте ссылку на актера с помощью protobuf в другом сообщении, в котором упоминается приведение ActorSystem
к ExtendedActorSystem
. Это правильный подход? Всегда ли это будет работать?