2014-10-23 22 views
6

sto lavorando su un'applicazione .NET che utilizza Solr come motore di ricerca. Avevo configurato un'installazione SolrCloud con due server (uno per Replica) e non ho diviso l'indice in frammenti (numero di shards = 1). Ho letto che SolrCloud (tramite Zookeeper) può fare un po 'di bilanciamento del carico, ma non ho capito come. Se si chiama un indirizzo specifico in cui è distribuita un'istanza di solr, la query viene visualizzata solo nei registri di quel server specifico.SolrCloud bilanciamento del carico

sulla documentazione di SolrCloud ho scoperto che:


specificare esplicitamente gli indirizzi dei frammenti che si desidera interrogare, dando alternative (delimitate da |) utilizzati per il bilanciamento del carico e fail-over:

http://www.ipaddress.com:8983/solr/collection1/select?shards=www.ipaddress.com:8983/solr|www.ipaddress.com:8900/solr,www.ipaddress.com:7574/solr|www.ipaddress.com:7500/solr


mi sto chiedendo se posso usare questa notazione per forzare il bilanciamento del carico anche se hanno un intero indice (solo uno shar d) e in tal caso come funziona il bilanciamento del carico.

AGGIORNAMENTO: Ho provato questa soluzione e funziona. Aggiunta dei vari indirizzi shard nel campo "shard" separati dal carattere "|" forza Solr a chiamare il bilanciamento del carico interno (LBHttpSolrServer) che esegue un semplice bilanciamento round robin.

Grazie per il vostro aiuto.

saluti, Jacopo

risposta

4

Ho provato questa soluzione e funziona. Aggiunta dei vari indirizzi shard nel campo "shard" separati dal carattere "|" forza Solr a chiamare il bilanciamento del carico interno (LBHttpSolrServer) che esegue un semplice bilanciamento round robin.

1

Dal momento che si dispone di un solo frammento, il server che riceve la richiesta risponderà con il risultato, non si esegue un'altra richiesta al altro replica quando ha i dati localmente. Il client Java CloudSolrServer si connette a ZooKeeper e sa quali server sono attivi o meno e eseguirà il bilanciamento del carico in modo appropriato tra tutti i server attivi. Non credo che ci siano porte .NET di porte disponibili per questo specifico client.

Problemi correlati