是否可以在弹簧数据弹性搜索中设置多个集群?

问题描述 投票:0回答:1

我们有一个用例,我们希望在不同的集群中使用某些索引,以提高性能。我们使用基于java的配置进行弹性搜索。

@Log4j
@Configuration
@EnableElasticsearchRepositories(basePackages = ["com.as.core.repositories"])
class ElasticSearchConfig {

@Bean
ElasticsearchOperations elasticsearchTemplate() {
    Client client
    Settings settings


    InetSocketTransportAddress inetSocketTransportAddress = new InetSocketTransportAddress(
            Holders.config.grails.elasticsearch.transportClientIP as String,
            Holders.config.grails.elasticsearch.transportClientPort as Integer
    )

        settings = ImmutableSettings.settingsBuilder()
                .put("cluster.name", "elasticsearch")
                .build()
        client = new TransportClient(settings)
                .addTransportAddress(inetSocketTransportAddress)



    return new ElasticsearchTemplate(client)
    }
}
  • 有什么办法可以添加不同弹性搜索集群的配置吗?
  • Spring数据自动在指定的集群中创建索引。如何在多集群应用程序中管理索引的创建?

我用google搜索的是方法addTransportAddresses(inetSocketTransportAddress),它允许我们添加一组弹性搜索服务器地址。

  • 但是我们如何指定多个集群名称?
grails elasticsearch spring-data spring-data-elasticsearch
1个回答
1
投票

没有什么可以阻止您为不同的集群创建多个客户端。

在你的ElasticSearchConfig类中,只需声明第二个方法elasticsearchTemplate2(),它返回另一个ElasticsearchTemplate实例,将另一个Client嵌入到另一个簇中。

然后根据创建索引的位置调用一种方法或另一种方法。

© www.soinside.com 2019 - 2024. All rights reserved.