2017-06-01 2 views
0

Ich spiele mit ElasticSearch REST API über 9200-Port.Was ist der Unterschied zwischen ElasticSearch API bis 9300 vs 9200 Port?

Offizielle Java-Bibliothek Client Verbindung zu 9300-Port.

Was ist der Unterschied zwischen Port API?

Ich möchte die Protokollierung von Ereignissen in Elasticsearch passieren und schauen, um Bulk-API:

Was stört mich am meisten, dass Java API durch PreBuiltTransportClient viel bringen von Abhängigkeiten, die völlig unnötig ist Overhead wenn Plug-Client in Anwendung (warum brauche ich org.apache.lucene Gläser in der App ??).

Gibt es Leistungsunterschiede, bieten sie das gleiche Maß an Zuverlässigkeit?

Antwort

1

Here

Java-Client erstellt einen Transportknoten Client für elastische und verbindet (nicht als voll funktionsfähiger Knoten) durch Transportmodul clustern statt ordentlich auf 9200-Port zu arbeiten. Es fällt also auf Port 9300 zurück, um sich mit der Transportschicht von ES zu verbinden.

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300)); 

Elastic für alle transport Anfrage an Port 9300, auch andere Knoten hören.

+0

Meinen Sie, dass 9300 ein Erkennungs- und Steuerport für Cluster ist, während 9200 öffentlicher API-Port zum Anfordern ist? Ich verstehe nicht, Vorteile von Java-Client für Bulk Einsatz 9300 Port anstelle von REST auf 9200 verwenden. – gavenkoa

+1

9200 ist Ruhe http-Port für elastische, ja 9300 ist sowohl Erkennung und Transport-Modul-Port. Für die Massenindizierung hilft es vielleicht bei einer besseren Leistung, da es sich direkt mit Datenknoten verbindet, um Daten in den Cluster zu importieren, als das Senden von Massendaten über den HTTP-Port. C# -Client für Elastic funktioniert auch als Java-Sicherung, indem ein virtueller Transport-Client-Knoten erstellt wird. – user3775217

Verwandte Themen