PersistentView
wurde in akka 2.4 veraltet. Die Dokumentation empfiehlt, stattdessen zu PersistenceQuery
zu wechseln. PersistenceQuery
scheint jedoch nur auf das Ereignisprotokoll beschränkt zu sein, ohne dass der Snapshot-Speicher abgefragt werden kann.Gibt es eine Möglichkeit, Snapshots mit PersistenceQuery zu verwenden
Das Wiederherstellen eines Status aus einer großen Anzahl von Ereignissen dauert einige Zeit, daher ist die Verwendung von Snapshots für mich wichtig.
Ist die Abwertung der Zeit hier ein wenig voraus? Sollte ich weiter mit PersistentView
arbeiten oder fehle ich etwas? Wie arbeite ich mit Schnappschüssen nur mit PersistenceQuery
?
Danke
Snapshots verwendet (wenn Sie sie nehmen, und wenn Sie Ihr System so konfigurieren, sie zu benutzen), wenn eine persistente Entität während der 'receiveRecover' Phase erholt sich der Zustand dieser Schauspieler zu bekommen erholt schneller. Ich verstehe nicht, warum Sie einen Snapshot-Speicher abfragen möchten. Etwas, das eine Persistenzabfrage verwendet (wie CQRS beim Erstellen eines Lesemodells), sollte individuelle Ereignisse und keinen aggregierten Zustands-Snapshot benötigen. – cmbaxter
Das Erstellen eines Lesemodells ist genau mein Anwendungsfall. Von einer großen Anzahl selten verwendeter Ansichten mit Passivierung in einer LRU. Mit 'PersistentView' kann das Lesemodell seine eigenen Snapshots verwalten, die dann verwendet werden, um bei Bedarf den Zustand wiederherzustellen. Die Wiederherstellung von (Snapshot + letzte X-Ereignisse) ermöglicht eine bessere Latenz als die Wiederherstellung von (allen Ereignissen). Ihr Kommentar scheint zu implizieren, dass Snapshots nicht gut zu einem Lesemodell passen. Pflege um zu erarbeiten? – kostja
Die gelesenen Modelle, die ich als Teil von Event Sourcing und CQRS erstellt habe, sind langlebig und werden in einer vollständigen Speicher-Engine aus dem Persistenz-Journal (das ist Elasticsearch) gespeichert. Die Builder für gelesenes Modell hören die Live-Ereignisströme (nach Tag) und projizieren die Ereignisse in Darstellungen der Entitäten, die in ES zum Zwecke der Abfrage leben. Die Ereignisse selbst funktionieren perfekt, um die Lesemodelle auf diese Weise aufzubauen. Ein Snapshot könnte nur nützlich sein, wenn ich von vielen hundert Ereignissen für eine bestimmte Entität zurückgeblieben wäre oder wenn ich das gesamte Lesemodell erneut erstellen müsste – cmbaxter