Akka 无法在OpenDaylight中使用Apache Ignite持久性

Akka 无法在OpenDaylight中使用Apache Ignite持久性,akka,ignite,opendaylight,akka-persistence,Akka,Ignite,Opendaylight,Akka Persistence,我试图用ApacheIgnite替换OpenDaylight中的默认LevelDB,但在对akka.conf文件进行更改并部署我在这里找到的akka PersistenceIgnite jar之后,我无法这样做。 我正在浏览ODL源代码,并将一些Log.debug/print语句放在sal分布式数据存储模块的某些类中 下面显示的是我在将print语句放入位于org/opendaylight/controller/config/yang/config/actor\u system\u provi

我试图用ApacheIgnite替换OpenDaylight中的默认LevelDB,但在对akka.conf文件进行更改并部署我在这里找到的akka PersistenceIgnite jar之后,我无法这样做。

我正在浏览ODL源代码,并将一些Log.debug/print语句放在sal分布式数据存储模块的某些类中

下面显示的是我在将print语句放入位于org/opendaylight/controller/config/yang/config/actor\u system\u provider/impl中的类ActorSystemProviderImpl的构造函数后得到的结果的一部分。我通过config.entrySet()打印了config对象的内容

我想知道为什么没有调用akka.persistence.ignite.journal.IgniteWriteJournal类。日志和快照对象是在ODL源代码的哪一部分创建的?LevelDB日志选择在哪里?这和

类ActorSystemProviderImpl?中使用的ActorSystem.create()方法

ODL不会创建日志和快照实例-这是由akka根据akka.conf中的配置在actor系统启动过程中的某个时候在内部完成的。事实上,ODL甚至不知道持久性后端——akka通过API抽象隐藏了这一点


我假设ODL碎片启动成功,在这种情况下,必须配置并实例化一些持久化后端。如果使用默认的LevelDB,那么将在karaf根目录下创建“journal”和“snapshots”目录。因此,如果您没有看到ODL成功启动后创建的这些目录,那么它就没有使用LevelDB。如果是这样的话,那么假设它使用的是ignite——至于为什么它没有将您的打印语句记录在构造函数中——也许您没有正确地部署带有更改的重建库?我对ignite一点也不熟悉,但是否应该有一些外部工件表明ODL正在使用ignite,例如文件、数据库表

正如我从提供的akka persistance ignite源代码中看到的,它应该在IgniteFactoryByConfig#apply()内启动Apache ignite实例,您是否可以检查是否指定了ignite_HOME system属性并正确指向ignite安装,以及ODL启动后是否在ignite_HOME/work目录下创建了目录?是的。创建“日志”和“快照”目录意味着使用默认的LevelDB。但是如果没有使用自定义类“IgniteJournal”,为什么sal分布式数据存储没有失败呢?您能告诉我sal分布式数据存储模块的源代码的哪个部分使用的是默认的LevelDB吗?正如我提到的,ODL不直接与LevelDB或任何持久性后端交互-它与akka的API抽象接口-akka在内部处理持久性后端的实例化。
akka.persistence.snapshot.ignite.class=Quoted("akka.persistence.
ignite.snapshot.IgniteSnapshotStore"),

akka.persistence.snapshot -   store.local.class=Quoted("org.opendaylight.controller.cluster.persistence.Loca
lSnapshotStore"),  

akka.persistence.journal.ignite.cache-prefix=Quoted("akka-

journal"), ignite.peerClassLoadingEnabled=ConfigBoolean(false),  

akka.akka.persistence.snapshot-

store.plugin=Quoted("akka.persistence.snapshot.ignite"), 

akka.persistence.journal.ignite.cache-backups=ConfigInt(1), 

akka.persistence.snapshot.ignite.cache-prefix=Quoted("akka-snapshot"),                                    

akka.persistence.journal.ignite.plugin-dispatcher=Quoted("ignite-dispatcher"),
akka.persistence.journal.ignite.class=Quoted("akka.persistence.ignite.journal.IgniteWriteJournal")