Akka持久性不起作用

时间:2018-08-20 08:42:37

标签: scala akka akka-persistence

所以我试图实现akka持久性,但是我遇到一个错误:为persistenceId [1]重播事件时,持久性失败。最后已知序列号[0] java.io.InvalidClassException:kz.dar.arena.domain.Bullet $ Evt;本地类不兼容:流classdesc serialVersionUID = -5880771744357396366,本地类serialVersionUID = 1502307324601793787

出什么问题了?

UPD:我已经解决了这个问题。我刚刚清除了日记

1 个答案:

答案 0 :(得分:0)

我看到您已经解决了问题,但让我解释一下问题所在:

您正在使用Java序列化将事件序列化为要存储在日志中的字节。 Java序列化默认情况下决定如何根据类的结构来序列化数据,这意味着,如果您更改类的结构(添加字段,删除字段,重命名字段等),则可能不知道如何反序列化数据。 serialVersionUID字段就像一个协议版本号,它使序列化库很容易知道数据版本与该类不兼容(请参见此处:What is a serialVersionUID and why should I use it?

最重要的,您几乎永远不应使用Java序列化来实现Akka持久性,否则将来会遇到问题。在Akka文档的此部分中了解更多信息:https://doc.akka.io/docs/akka/current/persistence-schema-evolution.html#picking-the-right-serialization-format