1

有没有人有过如何使用infinispan目录提供程序来配置节点集群以共享索引的工作示例? Infinispan的所有文档(文档严重缺乏btw)意味着它应该像设置一些属性一样简单,但无论我如何尝试我都无法使其工作。集群中的节点可以很好地找到彼此,我可以在一个节点上获得操作,并获得放在另一个节点上的对象。但只要我做了查询(使用索引)它就开始失败。具有共享索引的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> 

我还没有找到一个例子/教程覆盖了共享索引分布式缓存,并且我认为我的谷歌福是巨大的。我已经在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。