java - 一个程序中有多个Elasticsearch连接

标签 java elasticsearch resthighlevelclient

我正在研究一种服务,在该服务中我从 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

关于java - 一个程序中有多个Elasticsearch连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62020930/

相关文章:

java - 如何处理wait()和notify()?

java - 如何暂停服务

elasticsearch - 是否可以知道什么时候可以在Elasticsearch中搜索某些数据?

elasticsearch - 是否可以在 Elasticsearch 中运行两个节点但只允许查询一个?

security - 使用基本凭证提供者配置Elasticsearch Rest高级客户端

java - 从java打印文档时是否可以弹出打印对话框?

java - 如何捕获游戏中的配置错误! 2.1.5 避免显示默认错误信息?

elasticsearch - Elastic Search 传递的对象个数必须是偶数

java - [sum] 类型的聚合器无法接受子聚合

spring - 如何将Spring Boot与Elasticsearch 7.3连接