为什么 actor 消息是可序列化的?

Why are actor messages serializable?

阅读“http://doc.akka.io/docs/akka/snapshot/general/remoting.html”它声明“所有通过网络发送的消息都必须是可序列化的”,这反过来又要求发送到 actor 的所有消息都是可序列化的。为什么要求 actor 是可序列化的?

是使用序列化和反序列化在 actor 之间发送消息的原因吗?消息 sent/received 使用序列化的原因是消息可能会发送到驻留在不同 JVM 上的参与者?

消息在技术上不需要序列化,除非它们实际上是跨进程边界发送的。最佳实践是所有消息都应该是可序列化的,以保持位置透明。

为了测试目的强制序列化,您可以使用配置 akka.actor.serialize-messages=on,这将导致 akka 始终尝试序列化消息,即使是在本地发送时也是如此。