SolrCloud Load-Balancing

Ich arbeite an einer .NET-Anwendung, die Solr als Suchmaschine verwendet. Ich hatte eine SolrCloud-Installation mit zwei Servern (einer für Replica) konfiguriert und den Index nicht in Shards aufgeteilt (Anzahl der Shards = 1). Ich habe gelesen, dass SolrCloud (über Zookeeper) einen Lastausgleich durchführen kann, aber ich habe nicht verstanden, wie. Wenn Sie eine bestimmte Adresse aufrufen, an der eine Instanz von solr implementiert ist, wird die Abfrage nur in den Protokollen dieses bestimmten Servers angezeigt.

In der Dokumentation von SolrCloud habe ich folgendes gefunden:

Geben Sie explizit die Adressen der Shards an, die Sie abfragen möchten, und geben Sie Alternativen (durch | begrenzt) an, die für den Lastenausgleich und das Failover verwendet werden:

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

Ich frage mich, ob ich diese Notation verwenden kann, um den Lastenausgleich zu erzwingen, auch wenn a einen ganzen Index (nur einen Shard) hat und in diesem Fall, wie der Lastenausgleich funktioniert.

UPDATE: Ich habe diese Lösung getestet und sie funktioniert. Hinzufügen der verschiedenen Shard-Adressen im Feld "Shards", getrennt durch das Zeichen "|" zwingt Solr, den internen Load Balancer (LBHttpSolrServer) aufzurufen, der einen einfachen Round-Robin-Ausgleich durchführt.

Danke für Ihre Hilfe

Regards, Jacopo

Antworten auf die Frage(2)

Ihre Antwort auf die Frage