Bei Websites mit hoher Parallelität muss nicht nur die Stabilität der Backend-Dienste der Website berücksichtigt werden, sondern auch, ob die Dienste auf großen Datenverkehr zugreifen und diesem standhalten können, wie in der folgenden Abbildung dargestellt: 1: Verkehrszugriff, Sie können den Lvs+Nginx-Cluster verwenden, auf diese Weise können Sie auf bis zu Millionen QPS zugreifen 2: Implementieren Sie den Nginx-Cluster über Lvs und implementieren Sie den Back-End-Service-Cluster mit Nginx + Tomcat. Schließen Sie so den Prozess von der Datenverkehrsverarbeitung auf Zugriffsebene bis zur hochparallelen Verarbeitung des Back-End-Service-Clusters ab. 1. Lvs-EinführungLVS (Linux Virtual Server) ist ein virtueller Linux-Server. Es wird zum Lastenausgleich mehrerer Server verwendet und arbeitet auf der vierten Ebene des Netzwerks. Es kann hochleistungsfähige und hochverfügbare Serverclustertechnologie realisieren. Es ist stabil und zuverlässig. Selbst wenn ein Server im Cluster nicht ordnungsgemäß funktioniert, hat dies keine Auswirkungen auf den Gesamteffekt. Es basiert auf TCP/IP-Routing und -Weiterleitung und bietet extrem hohe Stabilität und Effizienz. Ein LVS-Cluster umfasst häufig die folgenden Rollen:
2. Lvs-LastausgleichsmodusLVS bietet drei Lastausgleichsmodi. Jeder Lastausgleichsmodus ist auf unterschiedliche Szenarien anwendbar. Lassen Sie uns diese drei Lastausgleichsmodi erklären. 2.1 NATNachdem die Benutzeranforderung den Verteiler erreicht hat, wird das angeforderte Datenpaket gemäß den voreingestellten iptables-Regeln an das Backend-RS weitergeleitet. RS muss das Gateway auf die interne IP des Verteilers einstellen. Sowohl die vom Benutzer angeforderten Datenpakete als auch die an den Benutzer zurückgesendeten Datenpakete durchlaufen den Verteiler. Daher wird der Verteiler auch als Engpass bezeichnet. Im NAT-Modus muss nur der Verteiler über eine öffentliche IP verfügen, daher werden öffentliche IP-Ressourcen gespart. 2.2 TUNDieser Modus erfordert die Konfiguration einer öffentlichen IP auf dem Distributor und allen RSs, die wir VIP nennen. Die vom Client angeforderte Ziel-IP ist VIP. Nachdem der Verteiler das angeforderte Datenpaket empfangen hat, verarbeitet er das Datenpaket und ändert die Ziel-IP in die IP von RS, sodass das Datenpaket RS erreicht. Nach dem Empfang des Datenpakets stellt RS das ursprüngliche Datenpaket wieder her, sodass die Ziel-IP VIP ist. Da diese VIP auf allen RSs konfiguriert ist, wird sie denken, dass sie es selbst ist. 2.3 DR-ModusEs ähnelt dem IP-Tunnel, der Unterschied besteht jedoch darin, dass die MAC-Adresse des Datenpakets in die MAC-Adresse des RS geändert wird. Der echte Server gibt die Antwort direkt an den Client zurück. Bei dieser Methode entsteht nicht der Overhead von IP-Tunneln und es ist nicht erforderlich, dass die realen Server im Cluster das IP-Tunnelprotokoll unterstützen. Allerdings ist es erforderlich, dass der Scheduler und der reale Server über eine Netzwerkkarte verfügen, die mit demselben physischen Netzwerksegment verbunden ist. 3. Konfiguration des Lvs DR-ModusBasierend auf der obigen Analyse können wir den Schluss ziehen, dass der DR-Modus eine relativ hohe Leistungseffizienz und hohe Sicherheit aufweist, weshalb die meisten Unternehmen die Verwendung des DR-Modus empfehlen. Wir konfigurieren hier auch den DR-Modus, um den Lvs+Nginx-Cluster zu implementieren. Wir haben 3 Maschinen vorbereitet: Stellen Sie zunächst sicher, dass Nginx auf allen drei Maschinen installiert ist. 1:192.168.183.133 (DS) 192.168.183.150 stellt externe Dienste bereit 2:192.168.183.134 (RS) 192.168.183.150 echter Geschäftsprozess zur Dienstabwicklung 3:192.168.183.135 (RS) 192.168.183.150 echter Geschäftsprozess zur Dienstabwicklung VIP: 3.1 VIP-KonfigurationSchließen Sie den Netzwerkkonfigurations-Manager (tun Sie dies auf jedem Computer). systemctl stop NetworkManager systemctl deaktiviert NetworkManager Virtuelle IP konfigurieren (konfiguriert in VIP 192.168.183.133) Erstellen Sie die Datei BOOTPROTO=statisch GERÄT=ens33:1 ONBOOT=ja IPADDR=192.168.183.150 NETMASK=255.255.255.0 Starten Sie den Netzwerkdienst neu: Neustart des Dienstnetzwerks Wir können sehen, dass der ursprünglichen Netzwerkkarte eine virtuelle IP 150 hinzugefügt wird. Gleichzeitig müssen Sie virtuelle Maschinen-IPs für IPADDR=127.0.0.1, wobei 127.0.0.1 eine lokale Loopback-Adresse ist und keiner klassenbasierten Adressklasse angehört. Es stellt die lokale virtuelle Schnittstelle des Geräts dar und wird daher standardmäßig als eine Schnittstelle betrachtet, die niemals ausfallen wird. NETMASK=255.255.255.255 Aktualisieren lo: wenn auf, lo Wenn Sie die IP überprüfen, können Sie feststellen, dass sich unter lo noch 150 weitere IPs befinden. 3.2 Installation des LVS-Clusterverwaltungstoolsipvsadm wird zur Verwaltung des LVS-Clusters verwendet und muss manuell installiert werden. DS kann installiert werden. Installationsbefehl: yum installiere ipvsadm Versionsansicht: ipvsadm -Ln Die Wirkung ist wie folgt: 3.3 Adressauflösungsprotokoll Funktioniert auf Die Parameter arp_ignore und arp_announce beziehen sich beide auf das ARP-Protokoll und werden hauptsächlich verwendet, um die Aktionen zu steuern, wenn das System eine ARP-Antwort zurückgibt und eine ARP-Anfrage sendet. Diese beiden Parameter sind besonders im DR-Szenario von LVS sehr wichtig. Ihre Konfiguration wirkt sich direkt darauf aus, ob die DR-Weiterleitung normal ist. arp-ignore: Der Parameter arp_ignore wird verwendet, um zu steuern, ob das System beim Empfang einer externen ARP-Anforderung eine ARP-Antwort zurückgeben soll (0 ~ 8, 2-8 werden selten verwendet). Konfigurationsdatei: net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 Konfiguration aktualisieren: sysctl -p Route hinzufügen: Wenn die Route zu diesem Zeitpunkt nicht erkannt wird, müssen Sie die entsprechenden Route hinzufügen -Host 192.168.183.150 dev lo:1 Zum Empfangen von Datenpaketen wird eine Hostadresse hinzugefügt. Nach dem Empfang der Datenpakete werden diese zur Verarbeitung an lo:1 übergeben. (Um einen Fehler beim Herunterfahren zu vermeiden, müssen Sie den obigen Befehl zu /etc/rc.local hinzufügen.) Nach dem Hinzufügen des Hosts können Sie Folgendes überprüfen: Wir müssen die obige Konfiguration auch in 3.4 Cluster-KonfigurationErklärung des ipvsadm-Befehls:
TCP-Dienstadresse des Clusters hinzufügen: (externe Anforderungen werden von der in dieser Konfiguration angegebenen VIP verarbeitet) ipvsadm -A -t 192.168.183.150:80 -s rr Parameterbeschreibung:
Lastausgleichsalgorithmus:
Konfigurieren Sie rs (2) Knoten im DS: ipvsadm -a -t 192.168.183.150:80 -r 192.168.183.134:80 -g ipvsadm -a -t 192.168.183.150:80 -r 192.168.183.135:80 -g Parameterbeschreibung:
Nachdem wir den Knoten hinzugefügt haben, überprüfen wir ihn über ipvsadm -Ln und können sehen, dass noch zwei weitere Knoten vorhanden sind. Zu diesem Zeitpunkt werden die Clientanforderungsdaten und TCP-Kommunikationsdaten in der Clusterliste dauerhaft gespeichert. Um den Effekt besser zu sehen, können wir die Speicherzeit wie folgt auf 2 Sekunden einstellen: ipvsadm --set 2 2 2 Zu diesem Zeitpunkt fordern wir Es kann festgestellt werden, dass die Anforderung zwischen den beiden Nginx-Pollings umgeschaltet wird. Dies ist das Ende dieses Artikels über das Implementierungsbeispiel zur Verwendung eines Lvs+Nginx-Clusters zum Erstellen einer Architektur mit hoher Parallelität. Weitere relevante Inhalte zum Erstellen eines Lvs Nginx-Clusters mit hoher Parallelität 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:
|
<<: Verwenden Sie reines CSS, um einen Scroll-Schatteneffekt zu erzielen
>>: MySQL-Optimierungslösung: Aktivieren Sie das Protokoll für langsame Abfragen
Inhaltsverzeichnis Vorwort Einrichten der Protoko...
Vorwort Ansicht ist ein sehr nützliches Datenbank...
Inhaltsverzeichnis 1. Standort / Matching 2. Stan...
Mit REGELN kann die Art der inneren Rahmen der Ta...
Lernpläne werden leicht unterbrochen und es ist s...
Ich habe mir kürzlich die Pressekonferenz von App...
MySQL-Dienst 8.0.14-Installation (allgemein), zu ...
Vorwort Heute entschied sich ein Kollege nach der...
Inhaltsverzeichnis 1. Was ist DOM 2. Elemente aus...
Inhaltsverzeichnis 2. Komma-Operator 3. JavaScrip...
Vorbereitung 1. Starten Sie die virtuelle Maschin...
Was ist ein Sticky-Footer-Layout? Unser übliches ...
Warum ist die Geschwindigkeit beim Öffnen des lok...
Vorwort Um die Hochverfügbarkeit des Systems zu g...
In diesem Artikel wird der spezifische JavaScript...