我正在 Scala 中编写一个使用 Akka actor 的分布式应用程序。我有一些数据结构,我的远程参与者很高兴地序列化、通过网络发送和反序列化,而无需我的任何额外帮助。
对于日志记录,我想序列化包含这些对象的案例类。我阅读了 akka project site 上的序列化文档但我想知道是否有更简单的方法来完成这项工作,因为 Akka 显然已经知道如何序列化这些对象。
2011 年 11 月 5 日编辑 回应维克多的评论
该应用程序是一个分布式马尔可夫决策过程引擎。
我正在尝试序列化以下其中一项:
case class POMDPIteration(
observations: Set[(AgentRef, State)],
rewards: Set[(AgentRef, Float)],
actions: Set[(AgentRef, Action)],
state: State
)
这里是 AgentRef 的定义:
case class AgentRef(
clientManagerID: Int,
agentNumber: Int,
agentType: AgentType
)
Action
和 AgentType
只是 Symbol
的类型别名为了保持简短,状态的定义在这里:
https://github.com/ConnorDoyle/EnMAS/blob/master/src/main/scala/org/enmas/pomdp/State.scala
我成功地在远程参与者之间发送包含 State 类型对象的案例类,没有问题。我只是想知道是否有办法获得 Akka 用于我自己目的的序列化例程。
Akka 在进行消息传递时的隐式序列化很容易,但从文档中可以看出,明确要求 Akka 提供序列化版本很难。也许我误解了文档,或者遗漏了一些重要的东西。
最佳答案
关于scala - Scala/Akka 中的序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015565/