这里写了http://doc.akka.io/docs/akka/current/scala/persistence.html:
PersistentView:视图是一个持久的,有状态的actor接收 由另一个持久性演员编写的记录消息。 视图本身不会记录新消息,而是更新 内部状态仅来自持久化演员的复制消息 流。
PersistentView的典型用例是什么?
它与Akka Streams / RX的区别如何?
看起来和我很相似。
答案 0 :(得分:2)
如果您根据CQRS设计应用程序,则可能会发现它很有用。 CQRS非常适合事件源系统,可以在博客文章中看到。
虽然您可以使用PersistentActor
个actor来更新应用程序的状态 - 这是命令端/模型,当您想要显示数据时,PersistentView
个actor会派上用场,所以在查询中侧。
一个例子是存储有关银行账户的数据。在传统模型中,您可能在某个存储库下拥有所有CRUD操作。此模型中的一个真正基本的转换是将PersistentActor
用于CUD位,将PersistentView
用于R位。好处是你从查询端解除了更新状态的命令部分。
至于最后一个问题,akka-persistence
和akka-streams
是出于不同目的而制作的。事实上akka-persistence-query-experimental
实际上是使用akka-streams
构建的,以提供不同的来源。一个例子实际上是here。请注意,PersistentView
在最新版本中已弃用,建议使用PersistenceQuery
。