Heim >Backend-Entwicklung >PHP-Tutorial >Elasticsearch- und MongoDB-Datensynchronisierung und verteilter Clusteraufbau (2)

Elasticsearch- und MongoDB-Datensynchronisierung und verteilter Clusteraufbau (2)

WBOY
WBOYOriginal
2016-07-30 13:31:381291Durchsuche
Vorheriger Artikel „Elasticsearch- und MongoDB-Datensynchronisation und verteilter Clusteraufbau (1)“ Wir haben eine Elasticsearch- und MongoDB-Datensynchronisation konfiguriert. Hohe Verfügbarkeit, Skalierbarkeit und Verteilung sind ein Vorteil und ein Merkmal von ES. Vertikal Skalierung/Vergrößerung oder horizontale Erweiterung oder Erweiterung nach außen, horizontale Skalierung/Verkleinerung.

Auf einem Knoten wird eine Instanz von ES ausgeführt, und ein Cluster enthält einen oder mehrere Knoten mit demselben cluster.name. Diese Knoten arbeiten zusammen, um die Datenfreigabe und Lastverteilung zu vervollständigen. Wenn Knoten zum Cluster hinzugefügt oder daraus entfernt werden, passt sich der Cluster an, um die Daten gleichmäßig zu verteilen. Ein Knoten im Cluster wird zum Masterknoten (Master) gewählt Knoten), der für die Verwaltung von Änderungen im gesamten Cluster verantwortlich ist, z. B. das Erstellen oder Löschen eines Index (Index) oder das Hinzufügen oder Löschen von Knoten zum Cluster. Jeder Knoten kann zum Masterknoten werden. In unserem Beispiel gibt es nur einen Knoten, dieser übernimmt also die Funktion des Masterknotens. ES verteilt Daten durch Sharding im gesamten Cluster. Stellen Sie sich Shards als Container für Daten vor. Dokumente werden in Shards gespeichert und Shards werden auf die Knoten im Cluster verteilt. Wenn der Cluster wächst und kleiner wird, migriert ES automatisch Shards zwischen Knoten, um sicherzustellen, dass der Cluster im Gleichgewicht bleibt. Ein Shard kann ein primärer Shard (Primary Shard) oder ein Replikat-Shard (Replica Shard) sein. Jedes Dokument im Index gehört zu einem primären Shard. Daher bestimmt die Anzahl der primären Shards die maximale Datenmenge, die Ihr Index speichern kann. Ein Replikat-Shard ist lediglich eine Kopie des primären Shards. Replikate werden verwendet, um Datenredundanz bereitzustellen, Daten vor Verlust bei Hardwarefehlern zu schützen und Leseanforderungen wie das Suchen und Abrufen von Dokumenten zu verarbeiten. Die Anzahl der primären Shards wird zu Beginn der Indexerstellung festgelegt, während die Anzahl der Replikat-Shards jederzeit geändert werden kann.

Spezifische Grundsätze finden Sie im offiziellen Dokument: „life innerhalb eines Clusters》 Demonstriert die horizontale Erweiterung. Hier wird eine neue virtuelle Maschine einer ES-Instanz hinzugefügt, sodass unsere vorherige ES-Instanz war: 10.253.1.70, und jetzt wird ein neuer Knoten hinzugefügt: 10.253.1.71. Sie müssen sicherstellen, dass die beiden Knoten miteinander kommunizieren können.Konfigurieren Sie config/elasticsearch.yml10.253.1.70 verwandte Konfiguration ist:

1cluster.name: elasticsearch_ryan

2node.name:"cluster-node-1"
10.253.1.71 verwandte Konfiguration ist:

1cluster.name: elasticsearch_ryan

2node.name:"cluster-node-1"
Tatsächlich muss sichergestellt werden, dass es einen gemeinsamen cluster.name gibt, um den ES-Dienst zu starten von 10.253.1.71, und dann können Sie es anzeigen. Der Status des unteren Knotenclusters:

01curl -XPOST "http://10.253.1.70:9200/_cluster/health"

02{

03    "cluster_name":"elasticsearch_ryan",

04    "status":"green",

05    "timed_out":false,

06    "number_of_nodes": 2,

07    "number_of_data_nodes": 2,

08    "active_primary_shards": 9,

09    "active_shards": 18,

10    "relocating_shards": 0,

11    "initializing_shards": 0,

12    "unassigned_shards": 0

13}
Sie können sehen, dass es jetzt 2 Knoten gibt. Die Statustabelle zeigt den Status des Clusters. Die spezifische Statusbedeutung:
  • grün: Alle Primär-Shards (Primary Shard) und Replikat-Shards (Replica-Shard) sind aktiv
  • Gelb: Alle Primär-Shards sind aktiv, aber nicht alle Replikate Shards sind aktiv
  • rot: Nicht alle primären Shards sind aktiv
  • Hier ist ein ES-Tool zur verteilten Clusterverwaltung Elasticsearch-Head, installieren Sie es einfach als Plug-in sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head Öffnen Sie nach der Installation die Verwaltungsoberfläche http://10.253.1.70:9200/_plugin/ head/Elasticsearch与MongoDB 数据同步及分布式集群搭建

    Elasticsearch- und MongoDB-Datensynchronisierung und verteilter Clusteraufbau

    Sie können die detaillierten Informationen der Knoten im verteilten Cluster anzeigen, Sie können auch Indexinformationen und Abfragen durchführen Funktionen, was sehr praktisch ist, und der Status des Clusters ist auch sehr intuitiv. Sie können Mongo weiterhin einige Daten hinzufügen, um es zu testen.

    Das Obige hat die Datensynchronisierung von Elasticsearch und MongoDB sowie den Aufbau verteilter Cluster eingeführt (2), und ich hoffe, dass es für Freunde, die sich für PHP-Tutorials interessieren, hilfreich sein wird.

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn