In letzter Zeit haben mich viele Freunde als Freund hinzugefügt, um nach dem Problem beim Einrichten eines Redis-Clusters zu fragen. Ich denke, mit dem Artikel „Einrichten eines Redis-Clusters basierend auf Docker“, den ich zuvor geschrieben habe, stimmt etwas nicht. Deshalb habe ich ein paar Minuten damit verbracht, den vorherigen Artikel durchzulesen und die folgenden Fragen zusammengefasst: Die Anzahl der Redis ist zu gering und es werden nur 3 Instanzen erstellt. Da es nur 3 Instanzen gibt, können alle nur Masterknoten sein und die Master-Slave-Beziehung des Clusters kann nicht widergespiegelt werden. Wie erstellt man einen Master-Slave-Cluster? Wie werden Slave-Knoten zugewiesen? Basierend auf dem vorherigen Artikel möchte ich diese Fragen kurz durchgehen. Dieser Artikel basiert auf der Version Docker + Redis 5.0.5 und erstellt im Clustermodus einen Master-Slave-Cluster mit 6 Redis-Instanzen. Natürlich wird im Artikel auf die entsprechenden Parameterbeschreibungen hingewiesen, sodass die Methode auch bei der Erstellung eines Clusters mit 9 Instanzen dieselbe ist. 1. Ziehen Sie das Redis-ImageBasierend auf Redis: Version 5.0.5, führen Sie die folgenden Anweisungen aus: Docker-Pull Redis: 5.0.5 2. Erstellen Sie 6 Redis-ContainerErstellen Sie 6 Redis-Container:
Der Ausführungsbefehl lautet wie folgt: docker erstellen --name redis-node1 --net host -v /data/redis-data/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379 docker erstellen --name redis-node2 --net host -v /data/redis-data/node2:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380 docker erstellen --name redis-node3 --net host -v /data/redis-data/node3:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381 docker erstellen --name redis-node4 --net host -v /data/redis-data/node4:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 6382 docker erstellen --name redis-node5 --net host -v /data/redis-data/node5:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 6383 docker erstellen --name redis-node6 --net host -v /data/redis-data/node6:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 6384 Einige Parametererklärungen:
Screenshot des ausgeführten Befehls: 3. Starten Sie den Redis-ContainerDer Ausführungsbefehl lautet wie folgt: Docker starten Redis-Knoten1 Redis-Knoten2 Redis-Knoten3 Redis-Knoten4 Redis-Knoten5 Redis-Knoten6 Der Start-Screenshot sieht wie folgt aus: 4. Erstellen Sie einen Redis-ClusterGeben Sie eine beliebige Redis-Instanz ein: # Hier nehmen wir die Instanz redis-node1 als Beispiel docker exec -it redis-node1 /bin/bash Führen Sie den Befehl des Komponentenclusters aus: # Einen Cluster erstellen, 10.211.55.4 ist die IP-Adresse der aktuellen physischen Maschine redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 10.211.55.4:6383 10.211.55.4:6384 --cluster-replicas 1 Der Screenshot des Ausführungsbefehls sieht wie folgt aus: Überprüfen Sie nach der erfolgreichen Erstellung die Clusterknoteninformationen über Redis-CLI: root@CentOS7:/data# redis-cli 127.0.0.1:6379> Clusterknoten Der Screenshot des Ausführungsbefehls sieht wie folgt aus: 5. Informationen zum Aufbau eines Redis-ClustersKehren wir zum Befehl zum Erstellen des Clusters zurück: redis-cli --cluster erstellen 10.211.55.4:6379~6384 --cluster-replicas 1 Bitte achten Sie besonders auf diesen Parameter --cluster-replicas 1. Die Zahl nach dem Parameter gibt das Master-Slave-Verhältnis an. Die 1 hier bedeutet beispielsweise, dass das Master-Slave-Verhältnis 1:1 beträgt. Was bedeutet das? Das heißt, 1 Masterknoten entspricht mehreren Slaveknoten. Es gibt jetzt 6 Instanzen, daher beträgt die Master-Slave-Zuordnung 3 Masterknoten und 3 Slaveknoten. Um die Robustheit des Clusters sicherzustellen, müssen mindestens drei Masterknoten vorhanden sein. Was wäre wenn --cluster-replicas 2? Dann beträgt das Master-Slave-Verhältnis 1:2, das heißt, 1 Masterknoten entspricht 2 Slaveknoten. Das heißt: 3 (Master) + 6 (Slave) = 9 Redis-Instanzen. Was passiert, wenn weniger als 9 Redis-Instanzen vorhanden sind, der Parameter aber als 2 angegeben ist? Die Fehlermeldung lautet: Die Eingabeaufforderung ist sehr klar: Der Redis-Cluster benötigt mindestens 3 Masterknoten. Dann müssen 6 Slave-Knoten vorhanden sein, sodass letztendlich mindestens 9 Knoten erforderlich sind. OK, ich werde nicht mit der Anforderung von mindestens 3 Masterknoten fortfahren, aber ich denke, 4 Masterknoten und 2 Slaveknoten sollten ausreichen, oder? 4 Masternodes überzeugen: # Geben Sie eine gestartete Redis-Instanz ein. Hier nehmen wir die Instanz redis-node1 als Beispiel. docker exec -it redis-node1 /bin/bash Führen Sie den Befehl aus, um einen Cluster zu erstellen: redis-cli --cluster erstellen 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 --cluster-replicas 0 Geben Sie 4 Master ohne Slaves an, sodass Sie 4 Master haben: Was ist mit den verbleibenden zwei Slave-Knoten? Manuell hinzufügen. Wie hinzufügen? Manuell hinzufügen! Sehen Sie die IDs dieser Masterknoten? Weisen Sie ihnen einfach Slaves zu. Führen Sie weiterhin die folgenden Befehle aus: redis-cli --cluster add-node 10.211.55.4:6383 10.211.55.4:6379 --cluster-slave --cluster-master-id b0c32b1dae9e7b7f7f4b74354c59bdfcaa46f30a redis-cli --cluster add-node 10.211.55.4:6384 10.211.55.4:6379 --cluster-slave --cluster-master-id 111de8bed5772585cef5280c4b5225ecb15a582e Die beiden Redis-Instanzen sind an andere Masterknoten angeschlossen: Schließlich rufen wir redis-cli auf und zeigen die Knoteninformationen über die Clusterknoten an: Dies ist das Ende dieses Artikels über die Implementierung eines Redis-Master-Slave-Clusters basierend auf Docker. Weitere relevante Inhalte zum Docker Redis-Master-Slave-Cluster finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des Problems bei der Kombination von CSS-Ellipsen und -Auffüllungen
>>: Grundkenntnisse in HTML: ein erstes Verständnis von Webseiten
Inhaltsverzeichnis UNION Tabelleninitialisierung ...
Vorwort echarts ist mein am häufigsten verwendete...
Inhaltsverzeichnis Klicken Sie zunächst auf das E...
Inhaltsverzeichnis 1 Nginx Installation 2 Nginx k...
Die Installation von MySQL 5.7 auf Ubuntu 1804 wi...
brew install nginx Apple Mac verwendet zur Instal...
Nginx mit Docker bereitstellen, so einfach ist da...
Methode join(): verbindet alle Elemente eines Arr...
Inhaltsverzeichnis Kongruent und inkongruent kong...
Ich habe MySQL auf meinem Computer längere Zeit n...
Inhaltsverzeichnis 1. Gemeinsame Indexbeschreibun...
Die Jenkins-Konfiguration von Benutzerrollenberec...
Inhaltsverzeichnis 1 Verwendung von v-if und v-sh...
Bei der Installation von FileZilla Server auf dem...
Inhaltsverzeichnis Tomcat-Einführung Tomcat-Berei...