当前位置: 首页 > 知识库问答 >
问题:

具有共享索引的Infinispan分布式集群

裴宜春
2023-03-14

有人有一个如何使用infinispan目录提供程序配置节点集群以共享索引的工作示例吗?Infinispan上的所有留档(留档严重缺乏btw)意味着它应该像设置一些属性一样简单,但无论我如何尝试,我都无法让它工作。集群中的节点彼此找到很好,我可以在一个节点上进行操作并获取放在另一个节点上的对象。但是一旦我进行查询(使用索引),它就开始失败。

我的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上的一些留档应该使一个节点成为主节点,什么都没有。

编辑:Im使用Infinispan 6.0.2.Final

共有1个答案

越鸿才
2023-03-14

我不使用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查询模块/src/test/resources。

 类似资料:
  • 我有两个应用程序使用相同的数据库实体。这两个应用程序都部署在jboss eap 6.2独立的集群上。DB表仅从一个应用程序中更新,但从两个应用程序中读取。这两个应用程序都使用本机hibernate API从数据库读取/写入数据。 在嵌入式模式下将infinispan启用为2LC后,如何确保在一个应用程序中更新的缓存实体从第二个应用程序缓存中失效?是否有任何JMX/JMS接口用于信号缓存失效? 若我

  • 本文向大家介绍SpringBoot开发案例 分布式集群共享Session详解,包括了SpringBoot开发案例 分布式集群共享Session详解的使用技巧和注意事项,需要的朋友参考一下 前言 在分布式系统中,为了提升系统性能,通常会对单体项目进行拆分,分解成多个基于功能的微服务,如果有条件,可能还会对单个微服务进行水平扩展,保证服务高可用。 那么问题来了,如果使用传统管理 Session 的方式

  • 我有两个Kafka连接器节点,分别是Node-A和Node-B。 我在每个节点中运行一个分布式工作器(指向同一个Kafka集群)。 组id和客户机id在两个分布式工作线程中是唯一的。 连接器任务是在两个节点上使用 http POST 请求成功创建的。连接器任务为同一主题生成消息。 注意:我知道分配的工人应该有相同的组id来分配任务。但我是针对一个具体的案例,作为一个实验来做上面所说的。 我使用来自

  • 在Web一章中,我们提到MySQL很脆弱。数据库系统本身要保证实时和强一致性,所以其功能设计上都是为了满足这种一致性需求。比如write ahead log的设计,基于B+树实现的索引和数据组织,以及基于MVCC实现的事务等等。 关系型数据库一般被用于实现OLTP系统,所谓OLTP,援引wikipedia: 在线交易处理(OLTP, Online transaction processing)是指

  • 我的集合中有两个数组(一个是嵌入式文档,另一个只是字符串的简单集合)。文档,例如: 由于一些查询将仅包含策略,而一些查询将包含标签和参与者数组,并且考虑到我无法创建具有两个数组的多键索引这一事实,我认为使用索引交叉点将是一个经典场景。 我正在执行一个查询,但我看不到交叉点。 以下是索引: 以下是查询: 这是解释的结果: 查询中的每个标记(tag1、tag-2和tag-3)都有10K个文档。每个策略

  • Consul提供了一个用于存储配置和其他元数据的键/值存储。Spring Cloud Consul Config是Config Server和Client的替代方案。在特殊的“引导”阶段,配置被加载到Spring环境中。默认情况下,配置存储在/config文件夹中。基于应用程序的名称和模拟解析属性的Spring Cloud Config顺序的活动配置文件创建多个PropertySource实例。例