Persistence Query for LevelDB

xiaoxiao2021-02-28  38

EventEnvelope提供每个事件相应的序列号 只要创建新的persistenceIds,LevelDB写日志就会通知查询端,并且此查询中不包含定期轮询或批处理。 NoOffset检索具有给定标记的所有事件 或通过指定序列偏移来检索所有事件的子集。偏移量对应于特定标签的有序序列号。请注意,EventEnvelope中提供了每个事件的相应偏移量,这使得可以在稍后的点从给定偏移量恢复流。   偏移量是唯一的,即具有完全相同序列号的事件不会被包括在返回的流中。这意味着您可以使用EventEnvelope中返回的偏移量作为后续查询中的偏移量参数。   除了偏移量外,EventEnvelope还为每个事件提供了persistenceId和sequenceNr。 sequenceNr是持久化actor的序列号,持久化actor持有该事件。 persistenceId + sequenceNr是事件的唯一标识符。   返回的事件流按偏移量(标签序列号)排序,对应的顺序与写入日志存储事件的顺序相同。返回查询的多个执行相同的流元素(以相同的顺序)。删除的事件不会从标记的事件流中删除。   使用deleteMessages(toSequenceNr)删除的事件不会从“标记的流”中删除。   配置: LeveldbReadJournal的配置 akka.persistence.query.journal.leveldb {    #LevelDB ReadJournalProvider的实现类    class =“akka.persistence.query.journal.leveldb.LeveldbReadJournalProvider”       #写入日志插件配置条目的绝对路径    #查询日志将连接到。 那必须是LeveldbJournal或SharedLeveldbJournal。    #如果未定义(或“”),它将连接到默认的日志,按照    #akka.persistence.journal.plugin属性。    write-plugin =“”       #LevelDB写日志尽快通知查询方    #是持久的,但出于效率原因,查询端检索事件    批量#有时可以延迟到配置的`refresh-interval`。    refresh-interval = 3s       #在一个查询(重放)中提取多少个事件,并保持缓存直到它们    #向下游交付。 max-buffer-size = 100

 

转载请注明原文地址: https://www.6miu.com/read-2631521.html

最新回复(0)