Neu bei Elasticsearch? Nehmen Sie an unserem Webinar „Erste Schritte mit Elasticsearch“ teil. Sie können jetzt auch eine kostenlose Cloud-Testversion starten oder Elastic auf Ihrem Rechner testen.
Elasticsearch ist als verteiltes System konzipiert, das große Datenmengen verarbeiten und eine hohe Verfügbarkeit gewährleisten kann. Eine der wichtigsten Funktionen, die dies ermöglichen, ist das Konzept der Indexreplikation, das durch die Einstellung number_of_replicas gesteuert wird. Dieser Artikel befasst sich detailliert mit dieser Einstellung, ihren Auswirkungen und wie man sie richtig konfiguriert.
Die Rolle von Replikaten in Elasticsearch
In Elasticsearch ist ein Index eine Sammlung von Dokumenten, die auf mehrere primäre Shards verteilt sind. Jeder primäre Shard ist ein in sich geschlossener Apache Lucene-Index, und die Dokumente innerhalb eines Index werden auf alle primären Shards verteilt. Um eine hohe Verfügbarkeit und Datenredundanz zu gewährleisten, ermöglicht Elasticsearch, dass jeder Shard eine oder mehrere Kopien, sogenannte Replikate, besitzt.
Die Einstellung number_of_replicas steuert die Anzahl der Replikat-Shards (Kopien), die Elasticsearch für jeden primären Shard in einem Index erstellt. Standardmäßig erstellt Elasticsearch für jeden primären Shard eine Replik, dies kann jedoch je nach den Anforderungen Ihres Systems geändert werden.
Konfigurieren der Anzahl der Replikate
Die Einstellung number_of_replicas kann bei der Indexerstellung konfiguriert oder später aktualisiert werden. So können Sie dies bei der Indexerstellung festlegen:
In diesem Beispiel erstellt Elasticsearch zwei Replikate für jeden primären Shard im Index my_index .
Um die number_of_replicas -Einstellung für einen bestehenden Index zu aktualisieren, können Sie die _settings -API verwenden:
Dieser Befehl aktualisiert den Index my_index , sodass für jeden primären Shard drei Replikate vorhanden sind.
Auswirkungen der Einstellung number_of_replicas
Die Einstellung number_of_replicas hat einen erheblichen Einfluss auf die Leistungsfähigkeit und Stabilität Ihres Elasticsearch- Clusters. Hier einige wichtige Punkte, die Sie beachten sollten:
- Datenredundanz und Verfügbarkeit: Durch die Erhöhung von
number_of_replicaswird die Verfügbarkeit Ihrer Daten verbessert, indem mehr Kopien jedes Shards erstellt werden. Wenn ein Knoten ausfällt, kann Elasticsearch weiterhin Daten von den Replikat-Shards auf den verbleibenden Knoten bereitstellen. - Suchleistung: Replikat-Shards können Leseanfragen bedienen, daher kann eine größere Anzahl von Replikaten die Suchleistung verbessern, indem die Last auf mehr Shards verteilt wird.
- Speicherbedarf: Mehr Replikate bedeuten mehr Speicherplatz. Sie sollten sicherstellen, dass Ihr Cluster über genügend Kapazität verfügt, um die zusätzlichen Replikate zu speichern.
- Ausfallsicherheit bei Knoten: Der
number_of_replicassollte unter Berücksichtigung der Anzahl der Knoten in Ihrem Cluster festgelegt werden. Wennnumber_of_replicasgleich oder größer als die Anzahl der Knoten ist, kann Ihr Cluster den Ausfall mehrerer Knoten ohne Datenverlust tolerieren.
Bewährte Vorgehensweisen zum Festlegen der Anzahl der Replikate
Die optimale Einstellung number_of_replicas hängt von den spezifischen Anforderungen Ihres Systems ab. Hier sind jedoch einige allgemeine Best Practices:
- Bei einem Cluster mit nur einem Knoten sollte
number_of_replicasauf 0 gesetzt werden, da keine weiteren Knoten vorhanden sind, die Replikate aufnehmen könnten. - Bei einem Multi-Node-Cluster sollte
number_of_replicasmindestens auf 1 gesetzt werden, um Datenredundanz und hohe Verfügbarkeit zu gewährleisten. - Wenn die Suchleistung Priorität hat, sollten Sie die Anzahl der Einträge
number_of_replicaserhöhen. Man sollte jedoch den Zielkonflikt zwischen Schreibleistung und Speicherbedarf berücksichtigen. - Stellen Sie stets sicher, dass Ihr Cluster über ausreichend Kapazität zur Speicherung der zusätzlichen Replikate verfügt.




