1

我正在开发一项服务,在该服务中我从弹性集群 A 获取 searchHit,然后使用从 A 获得的字段从弹性集群 B 获取详细信息。我创建了一个类 ClientFactory,它根据我发送的值创建 ES 客户端。(A 或 B)但是从 A 获取详细信息后,我无法创建与 B 的连接。我可以一次从 A 或 B 获取详细信息。知道如何解决这个问题吗?

4

1 回答 1

1

您可以创建两个resthighlevelclient对话cluster A和另一个对话cluster B,下面是显示的示例代码:

创建客户端 A

 RestHighLevelClient restHighLevelClientA = new RestHighLevelClient(
                RestClient.builder(new HttpHost(configuration.getClusteAConfig().getHost(),
                        configuration.getClusteAConfig().getPort(),
                        "http")));

创建客户端 B

 RestHighLevelClient restHighLevelClientB = new RestHighLevelClient(
                RestClient.builder(new HttpHost(configuration.getClusteBConfig().getHost(),
                        configuration.getClusteBConfig().getPort(),
                        "http")));

您应该有集群 A 和 B 的 2 个配置,由客户端创建代码读取。

ClusterA:
  host: cluste A hosts
  port: 9200

ClusterB:
  host: cluste B hosts
  port: 9200
于 2020-05-26T11:28:26.330 回答