2015-11-18 15 views
7

Ho paio di domande elasticsearch riguardanti nodo client:Come configurare i nodi client Elasticsearch?

  1. Posso dire: tutti i nodi fintanto che stanno aprendo la porta HTTP, li possono trattare come "client" nodi, perché siamo in grado di fare ricerca/indice attraverso questo nodo.

  2. In realtà abbiamo trattare il nodo come nodo client quando il cluster=false e data=false, se ho creato 10 nodi client, ho bisogno di instradare nel mio lato client, voglio dire, se mi specificare clientOne: 9200 nel mio codice come portale ES, quindi clientOne inoltra altre richieste HTTP ad altri nodi client, altrimenti, clientOne sarebbe sotto pressione molto alta. comunicano tra loro tra i nodi client?

  3. Quando si specificano i nodi client nel cluster ES, devo chiudere la porta HTTP di altri nodi? Perché possiamo interrogare solo i nodi client.

  4. Pensi che sia necessario impostare sia il nodo di dati e il nodo client nella stessa macchina, o semplicemente il nodo di dati di installazione funge anche da nodo client, comunque è nella stessa macchina?

  5. Se il cluster ES viene pesantemente/frequentemente indicizzato mentre è meno cercato, non è necessario impostare il nodo client, poiché il nodo client è utile per la raccolta dei dati, per favore?

  6. Per scopi generali di ricerca/indice dovrei usare la porta http o la porta TCP, qual è la differenza nella prospettiva dei clienti, per favore?

+3

Non è troppo difficile, ci sono troppe domande racchiuse in una singola, che ne riduce la qualità generale, perché renderà difficile per le persone in cerca di un argomento specifico trovare la risposta giusta al loro problema. Una domanda dovrebbe essere solo una domanda, sei domande, dovrebbero essere sei diverse domande. – Val

+1

Rompere questo significherebbe che se qualcuno conosce la risposta, la pubblicheranno. Come è ora, le persone potrebbero conoscere la risposta a una o due delle domande, ma non il resto, quindi saltano. Inoltre, il tuo fraseggio è un po 'difficile da analizzare e descrivere lo sfondo potrebbe aiutare un po' di più. – fabianvf

risposta

18
  1. Sì, è possibile inviare domande via http a qualsiasi nodo che ha la porta 9200 aperta.

  2. Con node.data: false e node.master: false, si ottiene "client node". Questi sono utili per scaricare l'indicizzazione e il traffico di ricerca dai tuoi nodi di dati. Se ne hai 10, dovresti mettere un bilanciamento del carico di fronte a loro.

  3. Chiusura porta http del nodo di dati (http.enabled: false) li avrebbe impedito di servire le richieste dei client (probabilmente buono), anche se sarebbe anche impedire curl'ing loro direttamente per le statistiche, ecc

  4. I nodi client sono utili (vedere n. 2), quindi non indirizzerei il traffico direttamente ai nodi dati. Sia che si esegua sia un nodo client sia un nodo dati sullo stesso pezzo di hardware dipenderebbero dalla configurazione di tale macchina (si dispone di RAM sufficiente, ecc.).

  5. I nodi client sono utili anche per l'indicizzazione, poiché sanno quale nodo dati deve ricevere i dati per l'archiviazione. Se invece si inviava una richiesta di indicizzazione a un nodo di dati casuali, le probabilità sarebbero alte di dover reindirizzare quella richiesta a un altro nodo. Questo è uno spreco di tempo e risorse, se è possibile creare nodi client.

  6. L'ingresso dei client nel cluster potrebbe consentire loro di accedere a ulteriori informazioni sul cluster, ma l'utilizzo di http offre un'interfaccia più generica di "scatola nera". Con http, non devi nemmeno mantenere i tuoi client con la stessa versione dei tuoi nodi ES.

Spero che questo aiuti.

+0

Gran risposta !!! Ho solo altre due domande: Per Risposta (2): I nodi client non inoltrano richieste l'un l'altro per il bilanciamento del carico, quindi devo mettere un loadbalancer davanti a loro, giusto per favore? Per Risposta (5): Se per impostazione predefinita sono solo master = true e data = true, quindi non vi è alcun nodo client nel cluster, quindi, come hai detto le probabilità sarebbero alte, giusto per favore? Molte grazie! – Jack

+0

La risposta 2 dice già "si vorrebbe mettere un bilanciatore di carico di fronte a loro". Per la risposta 5, se avessi 5 nodi di dati e li avessi inviati a caso in modo casuale, avresti colpito il server sbagliato (e avresti il ​​sovraccarico di spostare i dati) l'80% delle volte. L'utilizzo di nodi client impedirebbe questo. –

+0

Grazie mille! Per la risposta 5, intendo per impostazione predefinita il cluster ES imposta ciascun nodo come master = true e data = true, quindi, per impostazione predefinita, non esiste alcun nodo client. Quindi, per impostazione predefinita, il cluster non è ottimizzato, dobbiamo specificare i nodi client per un migliore inoltro, giusto per favore? – Jack

Problemi correlati