1

Я использую клиент узла ElasticSearch для выполнения запросов, но я хочу, чтобы подключиться к различному IP-адресу, то локальным, я хочу, чтобы достичь этогокак подключиться к различным Хостам в elasticsearch с помощью узла клиента

Client client = TransportClient.builder().build() 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300)); 

вещи в узле клиент

Node node = nodeBuilder().clusterName("yourcluster").client(true).node(); 
Client client = node.client(); 

пожалуйста, помогите мне, я хочу использовать Node Client с другими хостами не TransportClient

ответ

1

Узел клиент автоматически diş охватывает все узлы кластера, поскольку он фактически является частью самого кластера, вам не нужно перечислять хосты вручную. Но если ваш кластер находится в другой сети, которая не может быть обнаружена автоматически, вы также можете указать хотя бы один кластер с настройками.

Settings.Builder settings = Settings.builder() 
.put("path.home", ".") 
.put("discovery.zen.ping.unicast.hosts","192.168.1.1"); 

Node node = NodeBuilder.nodeBuilder().settings(settings) 
     .clusterName("elasticsearch") 
     .client(true) 
     .node(); 

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html

+0

но что, если я хочу, чтобы подключиться к другому IP-адрес-х? – swaheed

+0

Что делать, если сервер elasticsearch работает на некотором IP-адресе 192.168.1.2, а приложение, создающее клиент, находится на другом сервере, например, 192.168.1.4, а затем как наше приложение знает, что сервер Elasticsearch работает на этом 192.168.1.2 ip? – swaheed