我正在研究一种服务,在该服务中我从 flex 集群A获取searchHit,然后使用从A获得的字段从 flex 集群B获取详细信息。我创建了一个ClientFactory类,该类基于发送的值创建ES客户端。 (A或B)但是从A获取详细信息之后,我无法创建与B的连接。我可以一次从A或B获取详细信息。任何想法如何解决这个问题?
最佳答案
您可以创建两个resthighlevelclient
,一个与cluster A
对话,另一个与cluster B
对话,下面是显示的示例代码:
创建客户端
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