won*_*rld 1 persistence akka akka.net
由于我没有看到使用AKKA.NET Journals和Snapshot存储的任何示例,我假设我必须使用这两种类型的actor来实现Event Store和CQRS.
是否每次更改actor状态时都应更新Snapshot存储,还是应该每隔10秒设置一次计划更新?
如果Snapshot商店的演员只与期刊演员交谈,那么拥有该州的演员不应该同时与期刊和快照交谈吗?我正在思考SOC的问题.
假设我必须关闭服务器并备份.用户尝试通过Web UI访问产品(如计算机).那时,演员系统中不存在产品演员.要检索产品的状态,我不应该转到快照存储而不是运行所有日志来重新创建状态吗?
在Akka.Persistence中,Journal和SnapshotStore实际上都是用于从特定持久性提供者中抽象出actor的actor.您几乎永远不必直接使用它们 - PersistentView并PersistentActor在引擎盖下自动使用它们.
如果持久性actor有一系列要从中恢复的事件,则快照存储是优化actor恢复速度的唯一方法.在分布式环境中,没有事件源的快照不是实现持久性的手段.好主意是拥有一个计数器,它在持久化actor处理X事件后产生快照.基于时间的更新毫无意义 - 在许多情况下,演员可能在指定时间内没有改变.性能也差(很多不必要的周期).
SnapshotStores和期刊互不了解.Akka.Persistence持久性actor具有内置的恢复机制,可以处理来自SnapshtoStores和Journals的actor的状态恢复,并公开与它们通信的方法.
正如我所说,你可能不想直接与快照商店和期刊沟通.这是持久性actor /持久性视图的用途.你可能只是直接从后端存储中读取actor状态,但是如果在最新保存的快照之后没有其他事件,你应该进行比较等.在不同的工作节点上重建持久性actor/view是IMO更好的解决方案.
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |