1

我正在关注 akka-in-action 代码库远程处理(https://github.com/RayRoestenburg/akka-in-action/tree/master/chapter-remoting)。在示例中,它解释了使用发送方actor和接收方actor进行远程处理。两个参与者都是单独启动的(通过单独的 Main),并且他们能够按照解释进行通信(注意:两个参与者都是同一代码库的一部分)。

如果发送方参与者是不同项目(独立代码库)的一部分,我想看看它的行为。我创建了一个 Play 网络应用程序,它在通过一些休息客户端(我使用 Postman)获得 POST 调用时向上述接收者参与者发送一条消息。

我观察到的是,即使发送的消息(案例类)在发送方和接收方代码库中都可用,接收方仍会抱怨找不到类错误(它无法理解我从发送方发送的案例类对象)

如果远程处理必须工作,分布式参与者应该共享相同的代码库,这是一种预期的行为吗?

4

1 回答 1

1

迁移到 Kryo/Chill 将部分解决您的问题,只要您在下面使用相同版本的 Akka。这些二进制序列化格式本质上是脆弱的。Avro 在解决二进制序列化的生命周期问题方面做得更好;但是,唉,我从未见过 Avro 用于 Akka 中的序列化。

于 2016-07-26T20:30:41.820 回答