Bre*_*dan 6 scala akka akka-persistence
我正在使用scala api for akka-persistence来持久化一组组织成树的actor实例.树中的每个节点都是持久性actor,并根据"根"节点到该节点的路径命名.persistenceId设置为名称.例如,根节点actor具有persistenceId'root'.下一个节点有persistenceId'root-europe'.另一个演员可能有persistenceId'root-europe-italy'.
每个参与者的状态包括其子女的名字列表.例如,"root"演员将"欧洲","亚洲"等列表作为其州的一部分.
我已经为这个系统实现了快照.当根被触发为快照时,它会这样做,然后告诉每个孩子也这样做.
快照恢复期间出现问题.当我使用persistenceId ='root'重新创建一个actor时(通过将名称作为构造函数参数传递),该actor接收的SnapshotOffer事件是错误的.例如,它是'root-europe-italy ....'.这似乎是持久性合同的矛盾,其中persistenceId标识要恢复的actor状态.我通过反转节点actor的persistenceId来解决这个问题(例如'italy-europe-root'),所以这似乎与持久性模块检索文件的方式有关.请注意,我首先尝试了其他方法,例如,我在节点名称之间使用了各种分隔符,或者根本没有使用分隔符.
有没有其他人遇到过这个问题,或者akka-persistence开发人员可以帮助我理解为什么会发生这种情况?
BTW:我现在正在使用内置的基于文件的快照存储.
谢谢.