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。