Ho un cluster di 3 nodi ElasticSearch in esecuzione su AWS EC2. Questi nodi vengono impostati utilizzando OpsWorks/Chef. Il mio intento è di progettare questo cluster per essere molto elastico ed elastico (i nodi possono entrare ed uscire quando necessario).Non è necessario utilizzare un servizio di bilanciamento del carico con ElasticSearch?
Da tutto quello che ho letto su ElasticSearch, sembra che nessuno consiglia di mettere un bilanciamento del carico di fronte al cluster; invece, sembra che la raccomandazione è di fare una delle due cose:
punto il vostro cliente l'URL/IP di un nodo, lasciate ES fare il bilanciamento del carico per voi e la speranza che il nodo non va giù.
Hard-code gli URL/IP di TUTTI i tuoi nodi nell'app client e chiedi all'app di gestire la logica di failover.
Il mio background è per lo più in aziende agricole web dove è solo buon senso per creare una grande piscina di web server autonomi, gettare un ELB di fronte a loro e lasciare che il bilanciamento del carico decidere quali nodi sono vivi o morti. Perché ES non sembra supportare questa stessa architettura?
Grazie per questa risposta. Suppongo di essere più preoccupato del bilanciamento del failover. Capisco che ES eseguirà il bilanciamento del carico per me, ma cosa succede se il nodo a cui mi sto connettendo scende o viene messo fuori servizio? Nel caso di un ELB (almeno per quanto riguarda i server Web) bilancia le richieste tra tutti i nodi in servizio. C'è un modello simile per i cluster ES? – user2719100
Ho aggiunto come funziona la replica in ES – xeraa
@xeraa Quindi il client "nodo" risolve automaticamente i nodi/cluster elasticsearhc disponibili facendo broadcast o qualcosa del genere? –