代码之家  ›  专栏  ›  技术社区  ›  angelcervera

在AKKA持久性中禁用日志

  •  0
  • angelcervera  · 技术社区  · 5 年前

    我正在对一个阿克卡的演员进行表演测试,我想知道写在杂志上的影响。

    问题很简单,但我在文档中找不到任何内容:

    有什么想法吗?

    0 回复  |  直到 5 年前
        1
  •  2
  •   J0HN    5 年前

    阿法伊克,没有一个akka持久性插件是不起作用的-因为它基本上违背了持久性的目的。注意,akka persistence使用 eventsourcing 接近,所以 杂志 是“主”存储,快照是一种优化,可以在actor崩溃/重新启动等之后加快状态恢复,因此不能完全禁用日志。

    in-memory 坚持,或 Local LevelDB

    还有,还有一个 list of community-built plugins for persistence

    但是,我建议您使用实际的持久性插件来测试持久性的性能—不同的持久性后端的结果会有所不同(例如Cassandra、DynamoDb、JDBC和Mongo等等)

        2
  •  0
  •   angelcervera    5 年前

    我用一个持久性插件(journal+snapshots)创建了一个项目,它基本上什么都不做,只是忽略了它。

    当然,使用这个插件不会在发生故障后恢复,因此您的系统将无法恢复。

    https://github.com/angelcervera/akka-persistence-nowhere

    使用方法:

    resolvers += "osm4scala repo" at "http://dl.bintray.com/angelcervera/maven" // If 
    it's not found in the main maven repository. 
    libraryDependencies += "com.acervera.akka" %% "akka-persistence-nowhere" % "1.0.1"
    
    1. 覆盖默认值应用程序.conf
    akka {
      persistence {
        journal.plugin = "disable-journal-store"
        snapshot-store.plugin = "disable-snapshot-store"
      }
    }
    
    disable-journal-store {
      class = "com.acervera.akka.persistence.nowhere.AkkaPersistenceNowhereJournal"
      plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
    }
    
    disable-snapshot-store {
      class = "com.acervera.akka.persistence.nowhere.AkkaPersistenceNowhereSnapshotStore"
      plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
    }