Акка встроена в память читать журнал

#scala #akka #in-memory #akka-persistence

Вопрос:

Я пытался получить журнал чтения для встроенного журнала сохраняемости akka в памяти/моментального снимка. Мое восстановление и настойчивость работают, однако я просто пытаюсь написать набор тестов для этого, поэтому мне нужно иметь возможность напрямую считывать значения из журнала. Это дает мне ошибку, которую я не понимаю и о которой не нахожу никакой информации. Я получаю следующую ошибку:

 Unable to create read journal plugin instance for path [akka.persistence.journal.inmem], class [akka.persistence.journal.inmem.InmemJournal]!
java.lang.IllegalArgumentException: Unable to create read journal plugin instance for path [akka.persistence.journal.inmem], class [akka.persistence.journal.inmem.InmemJournal]!
 

Мой код для создания журнала чтения следующий код:

 val readJournal =
       PersistenceQuery(system).readJournalFor("akka.persistence.journal.inmem").asInstanceOf[ReadJournal
          with EventsByPersistenceIdQuery]

      // issue query to journal
      val source: Source[EventEnvelope, NotUsed] =
        readJournal.eventsByPersistenceId("replicationModel", 0, Long.MaxValue)

      // materialize stream, consuming events
      source.runForeach { event =>
        println("Event: "   event)
      }
 

Я также добавил этот фрагмент конфигурации в файл application.conf:

 akka.persistence.journal.inmem {
    # Class name of the plugin.
    class = "akka.persistence.journal.inmem.InmemJournal"
    # Dispatcher for the plugin actor.
    plugin-dispatcher = "akka.actor.default-dispatcher"

    # Turn this on to test serialization of the events
    test-serialization = off
}

# Local file system snapshot store plugin.
akka.persistence.snapshot-store.local {
    # Class name of the plugin.
    class = "akka.persistence.snapshot.local.LocalSnapshotStore"
    # Dispatcher for the plugin actor.
    plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
    # Dispatcher for streaming snapshot IO.
    stream-dispatcher = "akka.persistence.dispatchers.default-stream-dispatcher"
    # Storage location of snapshot files.
    dir = "snapshots"
    # Number load attempts when recovering from the latest snapshot fails
    # yet older snapshot files are available. Each recovery attempt will try
    # to recover using an older than previously failed-on snapshot file
    # (if any are present). If all attempts fail the recovery will fail and
    # the persistent actor will be stopped.
    max-load-attempts = 3
}