在Akka中PersistentView的典型用例是什么?

时间:2017-03-29 11:44:02

标签: akka system.reactive akka-stream event-sourcing akka-persistence

这里写了http://doc.akka.io/docs/akka/current/scala/persistence.html

  

PersistentView:视图是一个持久的,有状态的actor接收   由另一个持久性演员编写的记录消息。   视图本身不会记录新消息,而是更新   内部状态仅来自持久化演员的复制消息   流。

PersistentView的典型用例是什么?

它与Akka Streams / RX的区别如何?

看起来和我很相似。

1 个答案:

答案 0 :(得分:2)

如果您根据CQRS设计应用程序,则可能会发现它很有用。 CQRS非常适合事件源系统,可以在博客文章中看到。

虽然您可以使用PersistentActor个actor来更新应用程序的状态 - 这是命令端/模型,当您想要显示数据时,PersistentView个actor会派上用场,所以在查询中侧。

一个例子是存储有关银行账户的数据。在传统模型中,您可能在某个存储库下拥有所有CRUD操作。此模型中的一个真正基本的转换是将PersistentActor用于CUD位,将PersistentView用于R位。好处是你从查询端解除了更新状态的命令部分。

至于最后一个问题,akka-persistenceakka-streams是出于不同目的而制作的。事实上akka-persistence-query-experimental实际上是使用akka-streams构建的,以提供不同的来源。一个例子实际上是here。请注意,PersistentView在最新版本中已弃用,建议使用PersistenceQuery