SolrCloud wurde entwickelt, um eine hochverfügbare, fehlertolerante Umgebung für die Verteilung Ihrer indexierten Inhalte und Anfragen auf mehreren Servern bereitzustellen.
Es ist ein System, in dem die Daten in mehrere Teile gegliedert sind, die auf mehreren Rechnern gehostet werden können, mit Replikaten, die Redundanz für Skalierbarkeit und Fehlertoleranz bieten, und einem ZooKeeper-Server, der bei der Verwaltung der Gesamtstruktur hilft, so dass sowohl Indexierungs- als auch Suchanfragen korrekt weitergeleitet werden können.
Hinweis: Mehr Informationen zu diesem Thema sind auf der Solr Website zu finden.
Bei der Verteilung des Suchindex auf mehrere Solr Instanzen sowie dem Einsatz von Zookeeper, um die individuellen Solr Instanzen zu synchronisieren, wird eine große Anzahl von Fachbegriffen (z.B. Cluster, Ensemble, Node, Collection, Configset, Core, Leader, Replica, Shard etc.) verwendet, das durchaus verwirrend sein kann. Eine Auflistung und Erklärung der wichtigsten Konzepte befindet sich im Kapitel SolrCloud Fachbegriffe.
Wichtig:
Für allen beteiligten Solr bzw. Zookeeper Instanzen müssen die benötigten Ports (Solr Port, Solr Stop Port, Zookeeper ClientPort, Zookeeper Quorum Port und Zookeeper Leader Election Port) der anderen beteiligten Maschinen zugänglich sein. Deshalb sind alle diese Ports auf der Firewall der jeweiligen Hosts als Ausnahme zu konfigurieren.
SOLR_PORT - Solr Client Port (Standardwert: 8983)
Über diesen Port können Suchabfragen, aber auch zu indexierende Daten zu Solr geschickt werden.
Außerdem ist hier auch das Admin-Webinterface erreichbar, z.B. http://localhost:8983/
STOP_PORT - Solr STOP Port (Standardwert: SOLR_PORT -1000, e.g. 7983)
Über diesen Port kann eine Solr Instanz heruntergefahren werden.
Um zu verhindern, dass Unbefugte die Instanz beenden, gibt es einen sogenannten STOP_KEY, welcher im Fall von WebOffice FTS-Index auf einen proprietären Wert gesetzt wurde.
Der Standardwert für den STOP_KEY ist „solrrocks“ (ohne Anführungszeichen).
Zookeeper client port (Standardwert: 2181)
Zookeeper Clients (in unserem Fall die SolrCloud Instanzen) benutzen diesen Port, um sich mit Zookeeper zu verbinden.
Zookeeper steht per Standard unter dem Port 2181 zur Verfügung, Solr erwartet jedoch Zookeeper per Standard unter dem Port 9983.
Schlussendlich kann der Wert frei gewählt werden, die korrekte Nummer muss jedoch sowohl bei Zookeeper als bei Solr entsprechend konfiguriert werden.
Zookeeper quorum port (Standardwert: 2888)
Zookeeper Instanzen werden über diesen Port vom Leader über aktuelle Konfigurations-Updates informiert.
Zookeeper leader election port (Standardwert: 3888)
Dieser Port wird zwischen den Zookeeper Instanzen benutzt für die Ernennung eines neuen Leaders (z.B. wenn der ursprüngliche Leader-Knoten nicht mehr verfügbar ist). Wichtige Konfigurationsdateien und wo sie gefunden werden können.
Solr Konfigurationsdateien
WebOffice FTS-Index/bin/solr.in.cmd
enthält alle Konfigurationswerte für diesen Solr Server
WebOffice FTS-Index/server/etc/jetty-ipfilter.xml
Konfiguration aller Hosts die berechtigt sind auf FTS-Index zuzugreifen dürfen
Zookeeper Konfigurationsdateien
Zookeeper/instance{%ID%}/zoo.cfg
beschreibt den Client Port des Zookeeper Servers und auch alle anderen Servers des Ensembles
Zookeeper/instance{%ID%}/wrapper.conf
muss typischerweise nicht angepasst werden
ZookeeperRunner/instance{%ID%}/data/myid
die ID des Servers innerhalb des Ensembles (muss mit dem Wert %ID% übereinstimmen!)
Zookeeper/instance1/lib/log4j.properties
definiert wo Zookeeper seine Logs erstellt und in welchem Log-Level gelogged wird