ton*_*oft 4 akka akka-persistence
让我们想象一个典型的 Akka 应用程序,它具有一个树状 Actor 结构,即少量 (2-3) 数量的顶级 Actor,它们管理着层次结构底部的潜在数千个小型 Actor。似乎有两种方法可以实现持久化:
在这些方法之间进行选择时有哪些考虑因素?是否有任何典型的用例适合一个而不适合另一个?
这个问题应该是抽象的,但这里有一个例子。假设我们为应用程序的每个用户都有一个角色,并且这些角色共享同一个父角色。如果我们想保留每个用户的电子邮件地址及其任何更新,我们可以让每个用户角色持久化,或者我们可以让顶级角色持久化。
在那种情况下,我可能会采用第二种方法。您只会在“选择”用户actor 时为其恢复事件。使这种方法更加方便的是,用户参与者的行为可以根据其状态而改变。例如,如果用户注册,您当然不希望多次保留相同的“注册”事件。或者,如果用户停用其帐户,您当然不希望让他更新他的电子邮件等。此外,所有更改都保存为一系列事件。所以没有数据丢失。
另一方面,如果您使用第一种方法,则必须在父 actor 恢复时重新创建所有子 actor,以设置它们的状态,这样您就可以避免前面提到的不良行为。
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |