Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么参与者消息可以序列化?_Java_Scala_Akka - Fatal编程技术网

Java 为什么参与者消息可以序列化?

Java 为什么参与者消息可以序列化?,java,scala,akka,Java,Scala,Akka,读取“它声明”通过线路发送的所有消息必须可序列化“,这反过来要求发送到参与者的所有消息都可序列化。为什么要求参与者是可序列化的 使用序列化和反序列化在参与者之间发送消息的原因是什么?使用序列化发送/接收消息的原因是,可能会将消息发送给驻留在不同JVM上的参与者?消息在技术上不需要序列化,除非它们实际上是跨进程边界发送的。最佳实践是,所有消息都应该是可序列化的,以保持位置透明性 为了实现测试目的的序列化,您可以使用上的配置akka.actor.serialize messages=on,这将导致a

读取“它声明”通过线路发送的所有消息必须可序列化“,这反过来要求发送到参与者的所有消息都可序列化。为什么要求参与者是可序列化的


使用序列化和反序列化在参与者之间发送消息的原因是什么?使用序列化发送/接收消息的原因是,可能会将消息发送给驻留在不同JVM上的参与者?

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


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

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


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

嗯,是的,这当然是一个原因。actor的核心概念是无缝分发计算。嗯,是的,这当然是一个原因。参与者的核心概念是可无缝分配的计算。“跨越流程边界”,您指的是来自不同jvm的消息,而不是消息的来源消息从一个jvm中的参与者发送到另一个jvm中的参与者。由于消息是通过套接字发送的,因此需要在发送方进程(JVM)中将它们序列化为字节,然后反序列化回接收方进程(JVM)中的消息对象,这里,您指的是来自不同jvm的消息,而不是源于从一个jvm中的参与者发送到另一个jvm中的参与者的消息。由于消息是通过套接字发送的,因此需要在发送方进程(JVM)中将它们序列化为字节,然后反序列化回接收方进程(JVM)中的消息对象。