2016-06-13 7 views
0

Ich habe 3 Ubuntu VMs vollständig installiert und läuft mit Solr 6.0.1 und externen Zookeeper. Solr läuft im Cloud-Modus und repliziert über die 3 Knoten über Zookeeper. Datenindizierung wird auf allen Servern repliziert, einzelne Abfragen laufen auf allen Servern einwandfrei. Wenn ich eine Abfrage auf Solr01 führe, verstehe ich aus der Solr-Dokumentation, dass alle Knoten automatisch abgefragt werden und der Lastausgleich "eingebaut" wird. Wenn ich jedoch die Protokolle für Solr02 und Solr03 überprüfe, scheinen diese Server nicht wirklich genutzt zu werden. Ist meine Annahme korrekt über Lastenausgleich und wie kann ich bestätigen, dass es funktioniert?Load-Balancing Abfrage Anfragen mit SOLR 6, Zookeeper auf Ubuntu

Antwort

2

Da Sie den gleichen Inhalt auf allen drei Servern replizieren, gibt es für Solr01 keinen Grund, einen der anderen Server zu kontaktieren - er enthält bereits alle Dokumente, die er zur Beantwortung Ihrer Anfrage benötigt.

Wenn Sie SolrJ (oder einen anderen Zookeeper-aware-Client) verwenden, werden die Lesevorgänge in allen Replikaten für den Index (wenn Sie den richtigen Client verwenden) auf den Lastausgleich angewendet. Wenn Sie einen Client verwenden, der Zookeeper nicht unterstützt, aber mehrere Serveradressen unterstützt, stellen Sie alle Server mit der gewünschten Sammlung bereit (z. B. SolrClient([http://solr01, http://solr02, http://solr03])). Wenn Ihr Client nur eine einzelne URL unterstützt, verwenden Sie einen normalen Loadbalancer (Ich schlage auch vor, dies auch dann zu tun, wenn Ihr Client die Bereitstellung mehrerer URLs unterstützt, da Sie Knoten entfernen und hinzufügen können, ohne Code zu berühren.) Es gibt eine große Auswahl an Loadbalancern wie Haproxy, Nginx, Lack, Apache usw.