Ich habe eine elasticsearch-Instanz, die in einem privaten Netzwerk ausgeführt wird. Als ich versuchte, mit InetAddress darauf zuzugreifen, gab es einen Fehler: java.net.UnknownHostException:
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress
.getByName("http://elasticsearch.myorg.net"), 9200));
Als ich jedoch versuchte, mit dem Befehl curl darauf zuzugreifen, konnte ich die Antwort erhalten.
curl http://elasticsearch.myorg.net:9200
Was könnte der Grund sein, der dieses Problem verursachen könnte?
Ein Workaround für mich war, resttemplate zu verwenden https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html.
Es ist eine ziemlich ordentliche und einfache Lösung.
Antworten:
2 für die Antwort № 1Verwenden Sie Port 9300 anstelle von 9200. 9200 ist für die REST-API, 9300 für die Kommunikation zwischen Clustern und den Transport-Client.
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html