一个程序中的多个 Elasticsearch 连接
Multiple Elasticsearch connections in a program
我正在开发一项服务,在该服务中我从弹性集群 A 获取 searchHit,然后使用从 A 获取的字段从弹性集群 B 获取详细信息。我创建了一个 class ClientFactory,它创建ES 客户端基于我发送的值。 (A 或 B)但是从 A 获取详细信息后,我无法创建到 B 的连接。我可以同时从 A 或 B 获取详细信息。知道如何解决这个问题吗?
您可以创建两个 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
我正在开发一项服务,在该服务中我从弹性集群 A 获取 searchHit,然后使用从 A 获取的字段从弹性集群 B 获取详细信息。我创建了一个 class ClientFactory,它创建ES 客户端基于我发送的值。 (A 或 B)但是从 A 获取详细信息后,我无法创建到 B 的连接。我可以同时从 A 或 B 获取详细信息。知道如何解决这个问题吗?
您可以创建两个 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