Wie konfiguriere ich die Solr-Replikation mit mehreren Kernen?

8

Ich habe Solr mit mehreren Kernen laufen. Wegen der hohen Last möchte ich einen Slave einrichten, der genau die gleichen Indizes enthält.

Die Dokumentation Ссылка gibt an: "Fügen Sie den Replikationsanforderungshandler zu solrconfig.xml für jeden Kern hinzu", aber ich habe nur eine solrconfig.xml.

Meine Konfiguration:
Config: / data / solr / web / solr / conf / Konfigurationsdateien
Daten: / data / solr / data / solr / Kerndatendirs

Ist es wirklich notwendig, die Datei solrconfig.xml für jeden Kern zu kopieren?
Und wo sollte ich diese mehreren solrconfig Dateien ablegen?

solr.xml

%Vor%     
DionS 25.10.2012, 09:16
quelle

2 Antworten

16

Sie müssen die solr-Instanz kopieren, die Sie auf dem Slave-Server haben, und den Replikationshandler auf solrconfig.xml konfigurieren. Es empfiehlt sich, für jeden Kern ein anderes instanceDir -Verzeichnis zu verwenden, da normalerweise jeder Kern seine eigene schema.xml und solrconfig.xml hat. Wie auch immer, du kannst das gleiche conf verwenden, indem du deine solr.xml auf dieselbe instanceDir , aber eine andere dataDir , die du auch in dataDir als solrconfig.xml konfigurierst, konfigurierst:

%Vor%

Dies sollte Ihre Situation sein, wenn Sie derzeit mehrere Kerne haben, aber eine einzige solrconfig.xml .

Der Abschnitt solrconfig.xml replication auf den Slaves muss die URL des Masters enthalten, einschließlich des Core-Namens, der natürlich für jeden Core unterschiedlich ist. Aber Sie können den Platzhalter $ {solr.core.name} wie folgt verwenden:

%Vor%

Tatsächlich werden einige Eigenschaften wie solr.core.name automatisch zum Hauptbereich hinzugefügt und Sie können sich darauf beziehen Ihre Konfiguration. Daher kann der Replikationsabschnitt für jeden Kern gleich sein, wenn Sie keine kernspezifischen Einstellungen haben.

Außerdem könntest du dieselbe Konfiguration für Master und Slave verwenden die folgende Konfiguration und ändern Sie einfach den Wert (wahr oder falsch), den Sie den Umgebungsvariablen enable.master und enable.slave basierend auf was Sie tun möchten. Ich meine, dass Sie die gleiche Datei verwenden können, aber natürlich wird es auf verschiedenen Maschinen sein, da es nicht sehr sinnvoll wäre, Master und Slaves auf demselben Rechner zu haben.

%Vor%     
javanna 25.10.2012, 09:48
quelle
1

Ja, Sie müssen genau die gleiche Kopie der Dateien in jeder Kopie des Kerns haben, den Sie replizieren.

Um noch mehr Ihre solr-Instanzen zu entladen, schlage ich vor, dass Sie einen Master nur für die Indexierung und 2 Slaves verwenden, die vom Master repliziert werden, um Ihre Dokumente abzufragen.

    
Samuele Mattiuzzo 25.10.2012 09:37
quelle

Tags und Links