如何使用Akka持久性查询检索所有日志事件?

如何使用Akka持久性查询检索所有日志事件?,akka,akka-persistence,Akka,Akka Persistence,Akka持久性查询具有以下预定义操作: EventsByPersistenceId EventsByTag CurrentEventsTypersistenceId CurrentEventsByTag 所有持久类 但是,如果我需要获取所有过去的事件,某种CurrentEvents操作呢?我不知道如何在Akka持久性查询术语中实现它。我对持久性查询模块不是很熟悉,但这些操作都定义了一些Akka流源。您可以尝试按如下方式组合它们: def currentEvents(fromSequenceN

Akka持久性查询具有以下预定义操作:

EventsByPersistenceId EventsByTag CurrentEventsTypersistenceId CurrentEventsByTag 所有持久类


但是,如果我需要获取所有过去的事件,某种CurrentEvents操作呢?我不知道如何在Akka持久性查询术语中实现它。

我对持久性查询模块不是很熟悉,但这些操作都定义了一些Akka流源。您可以尝试按如下方式组合它们:

  def currentEvents(fromSequenceNr: Long, toSequenceNr: Long): Source[EventEnvelope, NotUsed] =
    currentPersistenceIds().flatMapConcat(id => currentEventsByPersistenceId(id, fromSequenceNr, toSequenceNr))

flatMapMerge
具有并发宽度是
flatMapConcat
的替代方案,以防您想将其并行化)

谢谢。这是可能的。我不确定这种方法(首先获取所有持久性ID,然后获取每个ID的事件)与获取实时流快照的效率。但是,似乎没有一种方法可以对整个实时流进行快照。