我在Scala中编写一个使用Akka actor的分布式应用程序。我有一些数据结构,我的远程演员愉快地序列化,通过电汇发送,并在没有任何额外帮助的情况下反序列化。
对于日志记录,我想序列化包含这些对象的案例类。我在akka project site上阅读了序列化文档,但我想知道是否有更简单的方法来完成这项工作,因为Akka显然知道如何序列化这些对象。
编辑2011年11月5日 以回应Viktor的评论
该应用程序是分布式马尔可夫决策流程引擎。
我正在尝试序列化其中一件事:
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
为了缩短这一点,State的定义如下: https://github.com/ConnorDoyle/EnMAS/blob/master/src/main/scala/org/enmas/pomdp/State.scala
我成功地在远程actor中发送包含State类型对象的case类,没有任何问题。我只是想知道是否有办法获得Akka用于我自己目的的序列化例程。
Akka在进行消息传递时的隐式序列化很容易,但是从文档中可以看出,明确要求Akka提供序列化版本很难。也许我误解了文档,或者遗漏了一些重要内容。
答案 0 :(得分:4)