如何将 Amazon S3 配置为 Hibernate Search 4.5.3 的远程缓存存储

How to configure Amazon S3 as remote cache store for Hibernate Search 4.5.3

我已将 Hibernate Search 配置为使用 infinispan 并使用基于文件系统的缓存存储将索引保存在文件系统而不是内存中。

现在,我想配置 S3 而不是文件系统,但我找不到正确的配置。

我的 infinispan.xml 文件是:

<infinispan
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-6.0.xsd"
      xmlns="urn:infinispan:config:6.0">

  <global>
    <globalJmxStatistics enabled="false" />
    <!-- <transport clusterName="storage-test-cluster" /> -->
    <shutdown hookBehavior="DONT_REGISTER" />
  </global>

  <default>
    <storeAsBinary
      enabled="false" />
    <locking
      isolationLevel="READ_COMMITTED"
      lockAcquisitionTimeout="20000"
      writeSkewCheck="false"
      concurrencyLevel="5000"
      useLockStriping="false" />
    <invocationBatching
      enabled="false" />
  </default>

  <namedCache name="LuceneIndexesMetadata">
    <persistence passivation="false">
       <singleFile
         fetchPersistentState="true"
         preload="true"
         purgeOnStartup="false"
         shared="true"
         ignoreModifications="false"
         location="C:\infinispan">
       </singleFile>
     </persistence>
  </namedCache>

  <namedCache name="LuceneIndexesData">
    <persistence passivation="false">
       <singleFile
         fetchPersistentState="true"
         preload="true"
         purgeOnStartup="false"
         shared="true"
         ignoreModifications="false"
         location="C:\infinispan">
       </singleFile>
     </persistence>
  </namedCache>

  <namedCache name="LuceneIndexesLocking">
    <!-- No CacheLoader configured here -->
  </namedCache>

</infinispan>

任何人都可以帮助我配置此文件以使用 Amazon S3 作为缓存存储。

您使用的 Hibernate Search 和 Infinispan 的特定版本非常旧。具体来说,Infinispan 在版本 6 中不支持在 Amazon S3 上存储。

我建议升级到仍在维护的更新版本。

在撰写本文时,您可以使用 Infinispan 9.1.5.FinalHibernate Search 5.8.2.Final.