Несколько подключений Elasticsearch в программе - PullRequest
2 голосов
/ 26 мая 2020

Я работал над сервисом, в котором я получаю searchHit из elasti c кластера A, а затем использую поле, полученное из A, для извлечения деталей из elasti c cluster B. Я создал класс ClientFactory, который создает Клиент ES на основе значений, которые я отправляю. (A или B) Но после получения деталей от A я не могу создать соединение с B. Я могу получить детали от A или B за один раз. Есть идеи, как решить эту проблему?

1 Ответ

1 голос
/ 26 мая 2020

Вы можете создать два 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")));

У вас должно быть 2 конфигурации для кластера A и B, которые считываются кодом создания клиента.

ClusterA:
  host: cluste A hosts
  port: 9200

ClusterB:
  host: cluste B hosts
  port: 9200
...