让我们想象一个典型的Akka应用程序,它具有类似树的Actors结构,即顶级参与者的少量(2-3),它们管理着层次底层的数千个小角色。似乎有两种持之以恒的方法:
在选择这些方法时,有哪些考虑因素?是否有任何典型的用例适合其中一个,而不是另一个?
这个问题应该是抽象的,但这里有一个例子。假设我们对应用程序的每个用户都有一个参与者,并且这些参与者共享同一个父角色。如果我们想要持久化每个用户的电子邮件地址和它的任何更新,我们可以使每个用户参与者持久,或者我们可以只是使顶级参与者持久。
发布于 2017-03-05 16:09:15
在这种情况下,我可能会采用第二种方法。只有当用户参与者“被选中”时,您才会恢复事件。使这种方法更加方便的是,用户参与者的行为可以根据其状态进行更改。例如,如果用户注册,那么您肯定不愿意多次保存相同的“已注册”事件。或者,如果用户关闭了它的帐户,你肯定不想让他更新他的电子邮件等等。另外,所有的更改都被保存为一系列事件。所以没有数据丢失。
另一方面,如果使用第一种方法,则必须在父角色恢复时重新创建所有子参与者,以便设置它们的状态,从而避免前面提到的不想要的行为。
https://stackoverflow.com/questions/42610266
复制相似问题