有没有人有一个工作示例,说明如何使用infinispan目录提供程序配置节点集群以共享索引?关于Infinispan的所有文档(文档严重缺乏顺便说一句)意味着它应该像设置一些属性一样简单,但无论我如何尝试我都无法使其工作。群集中的节点彼此之间找到了很好的结果,我可以在一个节点上获取操作并获取放在另一个节点上的对象。但是一旦我查询(使用索引),它就会开始失败。
我的infinispan配置:
<global>
<transport clusterName="SomeCluster">
<properties>
<property name="configurationFile" value="jgroups-udp.xml" />
</properties>
</transport>
</global>
<namedCache name="access">
<clustering mode="distribution" />
<indexing enabled="true" indexLocalOnly="true">
<properties>
<property name="default.directory_provider" value="infinispan"/>
<property name="default.worker.backend" value="jgroups"/>
</properties>
</indexing>
</namedCache>
我还没有找到一个覆盖带有共享索引的分布式缓存的示例/教程,我认为我的google-fu很棒。我已经在infinispan社区论坛上询问过,但没有得到任何回复。
我得到的错误都与以下事实有关:只有一个节点能够写入索引(主节点)但上面的配置,根据Hibernet Search的一些文档应该使一个节点成为主节点,尽我所能,什么都不做。
编辑:我正在使用Infinispan 6.0.2.Final
答案 0 :(得分:1)
而不是JGroups后端我使用InfinispanIndexManager - 这个经理已经提供了自己的后端。
<indexing enabled="true" indexLocalOnly="true">
<properties>
<property name="default.indexmanager" value="org.infinispan.query.indexmanager.InfinispanIndexManager" />
<property name="default.exclusive_index_use" value="false" />
<property name="default.metadata_cachename" value="lucene_metadata_repl" />
<property name="default.data_cachename" value="lucene_data_dist" />
<property name="default.locking_cachename" value="lucene_locking_repl" />
<property name="lucene_version" value="LUCENE_36" />
</properties>
</indexing>
现在,配置要集群(分发或复制)的所有缓存。如果不以这种方式指定缓存配置,则使用默认缓存配置创建三个缓存 - 默认情况下为非群集配置。 我不确定exclusive_index_use,但也许没有必要。
我同意Infinispan文档可能会更好,通常我不得不回避调查源代码。有关索引配置的示例,您可以查看infinispan-query模块/ src / test / resources。