


Was sind die Grundprinzipien der technischen Architektur großer MySQL-Websites?
1. Entwicklung der großen Website-Architektur
Hohe Parallelität, großer Datenverkehr, große Datenmengen; Umgebung; schnelle Änderungen der Anforderungen; fortschreitende Entwicklung
B. Anfangsstadium: ein Server, LNMP 2 Dienste: Anwendungsserver (CPU); Datenbankserver (schneller Festplattenabruf und Datencache); begrenzt durch Anwendungsserverspeicher, begrenztes Datenvolumen) , Remote-verteilter Cache (verwenden Sie einen Cluster, um einen Server mit großem Speicher als dedizierten Cache-Server bereitzustellen)4 Anwendungsserver-Cluster: geplant durch Lastausgleich
5 Schreibtrennung 6. Verwenden Sie Reverse-Proxy und CDN-Beschleunigung: CDN (bereitgestellt im nächsten Netzwerkcomputerraum), Reverse-Proxy (bereitgestellt im zentralen Computerraum) 7. Verwenden Sie verteilte Dateisysteme und verteilte Datenbanksysteme 8. Nutzen Sie NoSQL und Suchmaschinen 10. Verteilte DiensteC. Der Kernwert der groß angelegten Website-Architektur ist um flexibel auf die Bedürfnisse der Website zu reagieren
2. Die Hauptantriebskraft für die Entwicklung groß angelegter Website-Technologien ist die Missverständnisse im Website-Architekturdesign
1 Unternehmen 2. Technologie um der Technologie willen MusterJedes Muster stellt ein wiederkehrendes Problem und den Kern der Lösung des Problems dar. Auf diese Weise können Sie die Lösung immer wieder verwenden, ohne doppelte Arbeit leisten zu müssen. Der Schlüssel zu einem Muster ist die Wiederholbarkeit des Musters.
A. Website-Architekturmuster
1. Schichtung: Es ist das häufigste Architekturmuster in Unternehmensanwendungssystemen, das das System in mehrere Teile in der horizontalen Dimension unterteilt, und jeder Teil ist für einige verantwortlich relativ einzelne Verantwortlichkeiten und bilden dann durch die Abhängigkeiten und Aufrufe der oberen Schicht zur unteren Schicht ein vollständiges System.
Unterteilen Sie das Website-Softwaresystem in Anwendungsschicht (Ansichtsschicht, Geschäftslogikschicht), Serviceschicht (Datenschnittstellenschicht, Logikverarbeitungsschicht) und Datenschicht.
kann eine große Software besser integrieren. Das System ist In verschiedene Teile unterteilt, um die Arbeitsteilung, die kooperative Entwicklung und die Wartung zu erleichtern. Solange die aufrufende Schnittstelle unverändert bleibt, kann jede Schicht die Entwicklung unabhängig von bestimmten Problemen vertiefen, ohne dass andere erforderlich sind Ebenen, um entsprechende Anpassungen vorzunehmen.
2. Teilen
Vertikal schneiden. Trennen Sie verschiedene Funktionen und Dienste und packen Sie sie in modulare Einheiten mit hoher Kohäsion und geringer Kopplung. Die Granularität der Segmentierung kann bei großen Websites sehr gering sein.
3. Verteilt
bedeutet, dass verschiedene Module auf verschiedenen Servern bereitgestellt werden und über Remote-Aufrufe zusammenarbeiten. Dies bedeutet, dass mehr Computer verwendet werden können, um dieselbe Funktion auszuführen.
Probleme: Das Netzwerk kann einen schwerwiegenden Einfluss auf die Leistung haben; die Wahrscheinlichkeit, dass mehrere Server ausfallen, ist außerdem sehr schwierig, die Datenkonsistenz in einer verteilten Umgebung aufrechtzuerhalten, was die Verarbeitung und Wartung der Website erschwert setzt auf komplexe Entwicklung; verteilte Anwendungen und Dienste; verteilte Daten und Speicher; verteilte Dateien;
- 4. Cluster
- 5. Caching
- CDN, Reverse-Proxy, lokaler Cache, verteilter Cache.
- Zwei Voraussetzungen für die Verwendung des Caches: Erstens sind die Datenzugriffs-Hotspots unausgeglichen; zweitens sind die Daten innerhalb eines bestimmten Zeitraums gültig , ein Geschäftsvorgang ist in mehrere Phasen unterteilt, und jede Phase wird asynchron ausgeführt, um die Zusammenarbeit durch den Austausch von Daten zu ermöglichen.
- Ein einzelner Server kann eine asynchrone Ausführung durch Multi-Threaded-Shared-Memory-Warteschlangen erreichen; in einem verteilten System können mehrere Servercluster eine asynchrone Ausführung durch verteilte Nachrichtenwarteschlangen erreichen.
Der Einsatz asynchroner Methoden zur Geschäftsabwicklung kann sich auf die Benutzererfahrung und Geschäftsprozesse auswirken und erfordert Unterstützung beim Produktdesign.
7. Redundanz
Wenn Sie sicherstellen möchten, dass die Website weiterhin ohne Datenverlust bereitgestellt werden kann, wenn der Server ausfällt, benötigen Sie ein gewisses Maß an Serverredundanz und Datenredundanzsicherung.
Kleine Websites benötigen außerdem mindestens zwei Server, um einen Cluster aufzubauen. Zusätzlich zur regelmäßigen Sicherung und Speicherung, um eine Kaltsicherung zu erreichen, muss die Datenbank auch eine Master-Slave-Freigabe, eine Echtzeitsynchronisierung und eine Hot-Sicherung durchführen.
Große Unternehmen können das gesamte Rechenzentrum sichern und es mit lokalen Disaster Recovery Centern synchronisieren.
8. Automatisierung
konzentriert sich hauptsächlich auf den Release-Betrieb und die Wartung.
Automatisierung des Release-Prozesses: automatisierte Codeverwaltung, automatisierte Tests, automatisierte Sicherheitserkennung, automatisierte Bereitstellung.
Automatisierte Überwachung: automatisierte Alarme, automatisiertes Failover, automatisierte Fehlerwiederherstellung, automatisierte Verschlechterung und automatisierte Ressourcenzuweisung.
9. Sicherheit
B. Anwendung von Architekturmustern in Sina Weibo
3. Kernarchitekturelemente großer Websites
Architektur: die höchste Planungsebene, eine Entscheidung, die schwer zu ändern ist .
Softwarearchitektur: Eine abstrakte Beschreibung der Gesamtstruktur und der Komponenten von Software, die als Leitfaden für den Entwurf aller Aspekte großer Softwaresysteme dient.
A. Leistung
Browserseite: Browser-Cache, Seitenkomprimierung, angemessenes Layout, Reduzierung der Cookie-Übertragung, CDN usw.
Anwendungsserverseite: lokaler Server-Cache, verteilter Cache, asynchroner Betrieb mit Nachrichtenwarteschlangen, Clustern usw.
Code: Multithreading, verbesserte Speicherverwaltung usw.
Datenbank: Indizierung, Caching, SQL-Optimierung, NoSQL-Technologie
B. Verfügbarkeit
-
Das wichtigste Mittel zum Betreiben von Umgebungen wie Servern, Datenbanken und Dateispeichern ist Redundanz.
Durch Vorabverifizierung, automatisierte Tests, automatisierte Freigabe, Graustufenfreigabe und andere Mittel
C. Skalierbarkeit bezieht sich auf das kontinuierliche Hinzufügen von Servern zum Cluster. Mittel zur Linderung der zunehmende Druck des gleichzeitigen Benutzerzugriffs und die wachsende Nachfrage nach Datenspeicherung. Ob das Hinzufügen eines neuen Servers dieselben Dienste wie der ursprüngliche Server bereitstellen kann.
Anwendungsserver: Server können durch geeignete Lastausgleichsgeräte kontinuierlich zum Cluster hinzugefügt werden.
Cache-Server: Das Hinzufügen neuer Server kann dazu führen, dass die Cache-Route ungültig wird. Es ist ein Routing-Algorithmus erforderlich.
Relationale Datenbank: durch Routing-Partitionierung und andere Mittel.
D. Messkriterien: Wenn die Website Geschäftsprodukte hinzufügt, ob sie transparent sein kann und keine Auswirkungen auf bestehende Produkte hat;
bedeutet: Ereignisgesteuerte Architektur (Nachrichtenwarteschlange), verteilte Dienste (gemeinsame Nutzung von Geschäften und verfügbaren Diensten, Aufruf über verteiltes Dienst-Framework)
E. Sicherheit4. Sofortige Reaktion: Hohe Leistung der Website Leistungsarchitektur
1. Website-Leistung aus verschiedenen Perspektiven
aus Benutzerperspektive: Seiten-HTML-Stil optimieren, browserseitige Parallelität und asynchrone Funktionen nutzen, Browser-Caching-Strategien anpassen, und verwenden Sie CDN-Dienste, reflektierende Proxys usw.
Website-Leistung aus der Sicht eines Entwicklers: Verwendung von Cache zur Beschleunigung des Datenlesens, Verwendung von Clustern zur Verbesserung des Durchsatzes, Verwendung asynchroner Nachrichten zur Beschleunigung von Anforderungsantworten und Erzielung von Peak-Shedding sowie Verwendung von Codeoptimierungsmethoden zur Verbesserung der Programmleistung.
Website-Leistung aus Sicht des Betriebs- und Wartungspersonals: Aufbau und Optimierung von Backbone-Netzwerken, Verwendung kostengünstiger maßgeschneiderter Server, Einsatz von Virtualisierungstechnologie zur Optimierung der Ressourcennutzung usw.
2. Leistungstestindikatoren
- Antwortzeit: Die Testmethode besteht darin, die Anforderung zu wiederholen und die Summe der gesamten Testzeiten von 10.000 Malen durch 10.000 zu dividieren.
Durchsatz: Die Anzahl der vom System pro Zeiteinheit verarbeiteten Anfragen (TPS, HPS, QPS usw.)
Leistungsindikatoren: Einige Daten-Joysticks, die die Leistung des Servers oder Betriebssystems beschreiben. Eine umgeschriebene Version dieses Satzes lautet: Dies umfasst die Systemlast, die Anzahl der Objekte und Threads, die Speichernutzung, die CPU-Auslastung sowie Festplatten- und Netzwerk-E/A.
-
3. Leistungstestmethoden: Leistungstests, Lasttests, Stresstests, Stabilitätstests
Leistungstests werden durchgeführt, um das System kontinuierlich zu belasten, um Systemleistungsindikatoren, maximale Belastbarkeit und maximale Drucktoleranz zu erhalten. Die sogenannte Erhöhung des Zugriffsdrucks bedeutet, die Anzahl gleichzeitiger Anfragen für das Testprogramm kontinuierlich zu erhöhen.
5. Strategie zur Leistungsoptimierung
Leistungsanalyse: Überprüfen Sie die Protokolle jedes Links zur Anforderungsverarbeitung, analysieren Sie, welcher Link eine unangemessene Antwortzeit hat und übertreffen Sie dann die Überwachungsdaten.
B. Optimierung der Web-Frontend-Leistung
1. Browser-Zugriffsoptimierung: HTTP-Anfragen reduzieren (CSS/JS/Bilder zusammenführen), Browser-Cache verwenden (Cache-Control und Expires im HTTP-Header), aktivieren Komprimierung (Gzip), CSS wird oben auf der Seite platziert, JS wird unten auf der Seite platziert, wodurch die CND-Beschleunigung reduziert wird
3. Beschleunigen Sie Webanfragen durch die Konfiguration der Cache-Funktion. (Es kann auch echte Server schützen und Lastausgleichsfunktionen implementieren)
C. Leistungsoptimierung des Anwendungsservers1. Verteilter Cache
- Das erste Gesetz der Website-Leistungsoptimierung: Priorisieren Sie die Verwendung von Cache, um die Leistung zu optimieren
-
Wird hauptsächlich zum Speichern von Daten verwendet, die ein hohes Lese-/Schreibverhältnis aufweisen und sich selten ändern. Wenn der Cache nicht erreicht werden kann, wird die Datenbank gelesen und die Daten werden erneut in den Cache geschrieben.
3. Verteilte Cache-Architektur: verteilte Caches, die synchron aktualisiert werden müssen (JBoss-Cache), verteilte Caches, die nicht miteinander kommunizieren (Memcached)
4 die Website-Stabilität und -Leistung), hat einen guten Peak-Shaving-Effekt und speichert Transaktionsnachrichten, die durch hohe Parallelität generiert werden, in kurzer Zeit in der Nachrichtenwarteschlange. 5. Verwenden Sie Cluster Anzahl der CPU-Kerne. Achten Sie auf die Thread-Sicherheit: Entwerfen Sie Objekte als zustandslose Objekte und verwenden Sie Sperren, wenn Sie gleichzeitig auf Ressourcen zugreifen
Datenstruktur; Garbage Collection
D. Die Datenbank verwendet hauptsächlich einen zweistufigen Index B+, und die Baumebene umfasst bis zu drei Ebenen. Es können fünf Festplattenzugriffe erforderlich sein, um einen Datensatz zu aktualisieren. 2. Viele NoSQL-Produkte verwenden LSM-Bäume, die als Zusammenführungsbaum N-Ordnung betrachtet werden können. -
3. RAID (Redundant Array of Inexpensive Disks), RAID0, RAID1, RAID10, RAID5, RAID6, werden häufig in herkömmlichen relationalen Datenbanken und Dateisystemen verwendet.
4.HDFS (Hadoop Distributed File System) arbeitet mit MapReduce für die Verarbeitung großer Datenmengen zusammen. 5. Kinderleicht: Hochverfügbare Architektur der Website Zeitpunkt der Fehlererkennung (Meldung) -
Indikator für die jährliche Verfügbarkeit der Website = (1-Website-Nichtverfügbarkeitszeit/Gesamtjahreszeit)*100 % -
2 9s sind grundsätzlich verfügbar, 88 Stunden; 3 9s Es ist hoch verfügbar, 9 Stunden; 4 9s ist eine hohe Verfügbarkeit mit automatischer Wiederherstellungsfunktion, 53 Minuten sind eine extrem hohe Verfügbarkeit, weniger als 5 Minuten sind 99,99, 4 9s und sind etwa 53 Minuten lang nicht verfügbar. 2. Bewertung der Benutzerfreundlichkeit der Website
B. Hochverfügbare Website-Architektur
Das wichtigste Mittel ist redundantes Backup und Failover von Daten und Diensten. Die Anwendungsschicht und die Serviceschicht nutzen den Cluster-Lastausgleich, um eine hohe Verfügbarkeit zu erreichen, und die Datenschicht nutzt die datensynchrone Replikation, um eine redundante Sicherung zu erreichen.C. Hochverfügbare Anwendungen
1. Failover von zustandslosen Diensten durch Lastausgleich: Auch wenn der Anwendungszugriff sehr gering ist, stellen Sie mindestens zwei Server bereit, um einen kleinen Cluster mit Lastausgleich aufzubauen. 2. Sitzungsverwaltung des Anwendungsserver-Clusters hat Auswirkungen auf die Hochverfügbarkeit.Verwenden Sie Cookies zum Aufzeichnen von Sitzungen: Größenbeschränkung, jede Anforderungsantwort muss übertragen werden. Wenn Sie Cookies deaktivieren, können Sie nicht auf
Sitzungsserver zugreifen: Verwenden Sie verteilten Cache, Datenbank, usw., hohe Verfügbarkeit, hohe Skalierbarkeit und hohe Leistung. Gut
-
D. Hierarchische Verwaltung: Server sind hierarchisch in Betrieb und Wartung Auch die Reaktionsgeschwindigkeit bei Betrieb und Wartung ist extrem schnell.
2. Zeitüberschreitungseinstellung: Legen Sie die Zeitüberschreitung für Dienstaufrufe in der Anwendung fest. Sobald die Zeitüberschreitung abläuft, löst das Kommunikationsframework eine Ausnahme aus. Basierend auf der Dienstplanungsrichtlinie kann die Anwendung die Anforderung erneut versuchen oder an andere Server übertragen bieten den gleichen Service.
Die Anwendung schließt den Aufruf des Dienstes über asynchrone Methoden wie Nachrichtenwarteschlangen ab, um zu vermeiden, dass die gesamte Anwendungsanforderung fehlschlägt, wenn ein Dienst ausfällt.
4. Dienstverschlechterung: Denial of Service, Ablehnen von Anrufen von Anwendungen mit niedriger Priorität oder zufälliges Ablehnen einiger Anforderungsaufrufe, Herunterfahren einiger unwichtiger Dienste oder Herunterfahren einiger unwichtiger Funktionen innerhalb des Dienstes.
5. Idempotentes Design: In der Serviceschicht wird garantiert, dass wiederholte Aufrufe des Dienstes zu denselben Ergebnissen führen wie einmal aufgerufene, d. h. der Dienst ist idempotent.
E. Hochverfügbare Daten
1.CAP-Prinzip
Hochverfügbare Daten: Datenpersistenz (permanente Speicherung, Sicherungskopien gehen nicht verloren), Datenzugänglichkeit (schneller Wechsel zwischen verschiedenen Geräten), Datenkonsistenz (Bei mehreren Kopien ist die Konsistenz der Kopierdaten garantiert)
CAP-Prinzip: Ein Speichersystem, das Datendienste bereitstellt, kann Datenkonsistenz (Konsistenz), Datenverfügbarkeit (Verfügbarkeit) und Partitionstoleranz nicht erfüllen gleichzeitig (Partitionstoleranz, das System ist über Netzwerkpartitionen skalierbar).
Normalerweise erhöhen große Websites die Verfügbarkeit (A) und Skalierbarkeit (P) des verteilten Systems und opfern dabei bis zu einem gewissen Grad die Konsistenz (C). Im Allgemeinen treten Dateninkonsistenzen auf, wenn das System viele gleichzeitige Schreibvorgänge aufweist oder der Clusterstatus instabil ist. Das Anwendungssystem muss die Dateninkonsistenz des verteilten Datenverarbeitungssystems verstehen und bis zu einem gewissen Grad eine Kompensation und Fehlerkorrektur vornehmen falsche Anwendungssystemdaten.
Datenkonsistenz kann unterteilt werden in: starke Datenkonsistenz (alle Vorgänge sind konsistent), Datenbenutzerkonsistenz (Kopien können inkonsistent sein, aber wenn Benutzer darauf zugreifen, werden korrekte Daten durch Fehlerkorrekturüberprüfung ermittelt und an den Benutzer zurückgegeben). , die Daten sind letztendlich konsistent (Kopien und Benutzerzugriff können inkonsistent sein, aber das System erreicht die Konsistenz nach einer Zeit der Selbstwiederherstellung und -korrektur)
2. Datensicherung
Asynchrone Hot-Sicherung: mehrere Kopien von data Der Schreibvorgang wird asynchron abgeschlossen. Wenn die Anwendung eine erfolgreiche Antwort vom Datendienstsystem für den Schreibvorgang erhält, wird nur eine Kopie erfolgreich geschrieben und das Speichersystem schreibt andere Kopien asynchron (was fehlschlagen kann)
-
Synchronous Hot Standby: Multiple Der Schreibvorgang der Datenkopien wird synchron abgeschlossen. Das heißt, wenn die Anwendung die Schreiberfolgsantwort vom Datendienstsystem empfängt, war der Schreibvorgang mehrerer Datenkopien erfolgreich.
3. Fehlerübertragung: Heartbeat-Erkennung, Anwendungszugriffsfehler: Nachdem bestätigt wurde, dass ein Server ausgefallen ist, leiten Sie den Lese- und Schreibzugriff auf andere Server um
- Datenwiederherstellung: Kopieren Sie Daten von einem fehlerfreien Server und stellen Sie die Anzahl der Datenkopien auf den festgelegten Wert wieder her.
F. Software-Qualitätssicherung für Websites mit hoher Verfügbarkeit 2 Testen: Das Tool Selenium-
führt eine Vorabverifizierung auf dem Vorabversionsserver durch. Wir werden es zunächst auf dem Vorabversionscomputer zur Verwendung durch Entwicklungsingenieure und Testingenieure freigeben. Es benötigt die gleiche Konfiguration, Umgebung, dasselbe Rechenzentrum usw. wie die Produktionsumgebung
4 6. Graustufenfreigabe: Teilen Sie den Clusterserver in mehrere Teile auf, geben Sie jeden Tag nur einen Teil des Servers frei und achten Sie darauf, dass der Betrieb stabil und fehlerfrei ist. Wenn während des Zeitraums Probleme festgestellt werden, müssen Sie nur ein Rollback durchführen Teil des freigegebenen Servers. Wird auch häufig für Benutzertests (AB-Tests) verwendet.
G. Überwachung des Website-Betriebs
Sammeln Sie Benutzerverhaltensprotokolle, einschließlich Betriebssystem- und Browserversion, IP-Adresse, Seitenzugriffspfad, Seitenverweildauer und andere Informationen. Einschließlich serverseitiger Protokollerfassung und clientseitiger Browser-Protokollerfassung.
Erfassung der Serverleistung: wie Systemlast, Speichernutzung, Festplatten-IO, Netzwerk-IO usw., Tools Ganglia usw.
Ausführen von Datenberichten: wie Puffertrefferrate, durchschnittliche Antwortverzögerungszeit , Anzahl der pro Minute versendeten E-Mails, die Gesamtzahl der zu bearbeitenden Aufgaben usw. 2. Überwachung und Verwaltung FehlerübertragungAutomatisches, ordnungsgemäßes Downgrade: Beurteilen Sie die Anwendungslast anhand von Überwachungsparametern, deinstallieren Sie Anwendungsserver mit geringer Auslastung entsprechend und installieren Sie Anwendungen mit hoher Auslastung neu, um die gesamte Anwendungslast auszugleichen.
6. Unendlich: Die Skalierbarkeitsarchitektur der Website
Die sogenannte Skalierbarkeit der Website bedeutet, dass die Website einfach durch Änderung der Anzahl der eingesetzten Server erweitert oder verkleinert werden kann, ohne die Software zu ändern und Hardware-Design der Website. -
A. Skalierbarkeitsdesign der Website-Architektur
1. Physische Trennung verschiedener Funktionen zur Erzielung von Skalierbarkeit: vertikale Trennung (Trennung nach Schichtung), Trennung und Bereitstellung verschiedener Teile des Geschäftsverarbeitungsprozesses zur Erzielung horizontaler Trennung nach der Geschäftssegmentierung), trennen und implementieren Sie verschiedene Geschäftsmodule, um die Skalierbarkeit des Systems zu erreichen.
2. Eine einzelne Funktion kann durch Cluster-Skalierung skaliert werden.
2. Lastausgleich:
HTTP-Umleitungslastausgleich: Berechnen Sie eine echte Webserveradresse basierend auf der HTTP-Anfrage des Benutzers, schreiben Sie die Serveradresse in die HTTP-Umleitungsantwort und geben Sie sie an den Browser des Benutzers zurück. Diese Lösung hat ihre Vorteile, die Nachteile bestehen jedoch darin, dass zwei Anfragen erforderlich sind, die Verarbeitungsleistung des Weiterleitungsservers selbst möglicherweise begrenzt ist und die 302-Weiterleitung möglicherweise auch Auswirkungen auf die Suchmaschinenoptimierung hat.
- DNS-Domänennamenauflösungs-Lastausgleich: Konfigurieren Sie mehrere A-Einträge auf dem DNS-Server, um auf verschiedene IPs zu verweisen. Der Vorteil besteht darin, dass die Lastausgleichsarbeit auf den DNS übertragen wird. Viele unterstützen auch die geografische Standortrückgabe an den nächstgelegenen Server . Der Nachteil besteht darin, dass der A-Eintrag möglicherweise zwischengespeichert wird und die Kontrolle beim Domain Name Service Provider liegt.
- Reflektierender Proxy-Lastausgleich: Die vom Browser angeforderte Adresse ist der Reverse-Proxy-Server. Nachdem der Reverse-Proxy-Server die Anfrage erhalten hat, berechnet er die Adresse eines echten physischen Servers basierend auf dem Lastausgleichsalgorithmus und leitet die Anfrage weiter an Der reale Server gibt die Antwort nach Abschluss der Verarbeitung an den Reverse-Proxy-Server zurück, und der Reverse-Proxy-Server gibt die Antwort an den Benutzer zurück. Wird auch als Lastausgleich auf Anwendungsebene (HTTP-Ebene) bezeichnet. Die Bereitstellung ist einfach, aber die Leistung des Reverse-Proxys kann zu einem Engpass werden.
- IP-Lastausgleich: Nachdem das Benutzeranforderungsdatenpaket den Lastausgleichsserver erreicht hat, erhält der Lastausgleichsserver das Netzwerkdatenpaket im Kernelprozess des Betriebssystems, berechnet einen echten Webserver basierend auf dem Lastausgleichsalgorithmus und Anschließend wird die Ziel-IP-Adresse der Daten an einen echten Server gesendet und muss nicht vom Benutzerprozess verarbeitet werden. Nachdem der reale Server die Verarbeitung abgeschlossen hat, kehrt das Antwortpaket zum Lastausgleichsserver zurück, und der Lastausgleichsserver ändert die Quelladresse des Pakets in seine eigene IP-Adresse und sendet es an den Browser des Benutzers.
- Lastausgleich der Datenverbindungsschicht: Dreiecksübertragungsmodus, die IP-Adresse des Lastausgleichsservers wird während des Datenverteilungsprozesses nicht geändert, nur die Ziel-Mac-Adresse wird geändert und die virtuelle IP-Adresse aller Server ist konsistent mit der IP-Adresse des Lastausgleichsservers. Die Quelladresse und die Zieladresse des Datenpakets werden nicht geändert. Da die IP konsistent ist, kann das Antwortdatenpaket direkt an den Browser des Benutzers zurückgegeben werden. Wird auch Direct Routing (DR) genannt. Stellt das Produkt LVS (Linux Virtual Server) dar.
- 3. Lastausgleichsalgorithmus:
- Weighted Round Robin (WRR): Entsprechend der Leistung der Serverhardware, Die Verteilung erfolgt entsprechend der konfigurierten Gewichtung auf der Grundlage von Abfragen.
- Zufällig: Anforderungen werden jedem Anwendungsserver zufällig zugewiesen.
- Least Connections: Aufzeichnungsserver. Die Anzahl der verarbeiteten Verbindungen und neue Anforderungen werden verteilt zum Server mit den wenigsten Verbindungen
- Quell-Hashing: Hash-Berechnung basierend auf der IP-Adresse der Anforderungsquelle
C. Verteiltes Skalierbarkeitsdesign des Cache-Clusters
1 Cache-Cluster
Geben Sie das Routing-Algorithmus-Modul über KEY ein, und der Routing-Algorithmus berechnet einen Memcached-Server zum Lesen und Schreiben. 2. Skalierbarkeitsherausforderungen des verteilten Memcached-Cache-Clusters
Ein einfacher Routing-Algorithmus besteht darin, die Rest-Hash-Methode zu verwenden: Teilen Sie den Hash-Wert der Cache-Daten KEY durch die Anzahl der Server und ermitteln Sie die Servernummer, die dem Rest entspricht. Lässt sich nicht gut skalieren.
3. Der
konsistente Hash-Algorithmus des verteilten CachesErstellen Sie zunächst einen ganzzahligen Ring mit einer Länge von 2 hoch 32 (konsistenter Hash-Ring) und platzieren Sie den Cache-Serverknoten entsprechend dem Hash-Wert in diesem Hash des Knotennamens. Berechnen Sie dann den Hash-Wert basierend auf dem KEY-Wert der Daten, die zwischengespeichert werden müssen, und suchen Sie dann im Uhrzeigersinn im Hash-Ring nach dem Cache-Serverknoten, der dem Hash-Wert des KEY am nächsten liegt, um die Hash-Zuordnungssuche von KEY zu abzuschließen Server.
D. Skalierbarkeitsdesign eines Datenspeicher-Serverclusters
1. Skalierbarkeitsdesign eines relationalen Datenbankclusters
Datenreplikation (Master-Slave), Tabellen- und Datenbankpartitionierung, Daten-Sharding (Cobar) 2.NoSQL-Datenbankskalierbarkeit design
NoSQL verzichtet auf das normalisierte Datenmodell basierend auf relationaler Algebra und Structured Query Language (SQL) und garantiert keine Transaktionskonsistenz (ACID). Verbesserte Hochverfügbarkeit und Skalierbarkeit. (Apache HBase)
- DNS-Domänennamenauflösungs-Lastausgleich: Konfigurieren Sie mehrere A-Einträge auf dem DNS-Server, um auf verschiedene IPs zu verweisen. Der Vorteil besteht darin, dass die Lastausgleichsarbeit auf den DNS übertragen wird. Viele unterstützen auch die geografische Standortrückgabe an den nächstgelegenen Server . Der Nachteil besteht darin, dass der A-Eintrag möglicherweise zwischengespeichert wird und die Kontrolle beim Domain Name Service Provider liegt.
Das obige ist der detaillierte Inhalt vonWas sind die Grundprinzipien der technischen Architektur großer MySQL-Websites?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

Navicat selbst speichert das Datenbankkennwort nicht und kann das verschlüsselte Passwort nur abrufen. Lösung: 1. Überprüfen Sie den Passwort -Manager. 2. Überprüfen Sie Navicats "Messnot Password" -Funktion; 3.. Setzen Sie das Datenbankkennwort zurück; 4. Kontaktieren Sie den Datenbankadministrator.

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

Durch das Kopieren einer Tabelle in MySQL müssen neue Tabellen erstellt, Daten eingefügt, Fremdschlüssel festgelegt, Indizes, Auslöser, gespeicherte Verfahren und Funktionen kopiert werden. Zu den spezifischen Schritten gehören: Erstellen einer neuen Tabelle mit derselben Struktur. Fügen Sie Daten aus der ursprünglichen Tabelle in eine neue Tabelle ein. Legen Sie die gleiche fremde Schlüsselbeschränkung fest (wenn die Originaltabelle eine hat). Erstellen Sie den gleichen Index. Erstellen Sie denselben Auslöser (wenn die ursprüngliche Tabelle eine hat). Erstellen Sie dieselbe gespeicherte Prozedur oder Funktion (wenn die ursprüngliche Tabelle verwendet wird).

Navicat für MariADB kann das Datenbankkennwort nicht direkt anzeigen, da das Passwort in verschlüsselter Form gespeichert ist. Um die Datenbanksicherheit zu gewährleisten, gibt es drei Möglichkeiten, Ihr Passwort zurückzusetzen: Setzen Sie Ihr Passwort über Navicat zurück und legen Sie ein komplexes Kennwort fest. Zeigen Sie die Konfigurationsdatei an (nicht empfohlen, ein hohes Risiko). Verwenden Sie Systembefehlsleitungs -Tools (nicht empfohlen, Sie müssen die Befehlszeilen -Tools beherrschen).

Zeigen Sie die MySQL -Datenbank mit dem folgenden Befehl an: Verbindung zum Server: MySQL -U -Benutzername -P -Kennwort ausführen STEILE -Datenbanken; Befehl zum Abrufen aller vorhandenen Datenbanken auswählen Datenbank: Verwenden Sie den Datenbanknamen. Tabelle Ansicht: Tabellen anzeigen; Tabellenstruktur anzeigen: Beschreiben Sie den Tabellennamen; Daten anzeigen: Wählen Sie * aus Tabellenname;

Kopieren und einfügen in MySQL die folgenden Schritte: Wählen Sie die Daten aus, kopieren Sie mit Strg C (Windows) oder CMD C (MAC). Klicken Sie mit der rechten Maustaste auf den Zielort, wählen Sie ein Einfügen oder verwenden Sie Strg V (Windows) oder CMD V (MAC). Die kopierten Daten werden in den Zielort eingefügt oder ersetzen vorhandene Daten (je nachdem, ob die Daten bereits am Zielort vorhanden sind).

Schritte zur Durchführung von SQL in Navicat: Verbindung zur Datenbank herstellen. Erstellen Sie ein SQL -Editorfenster. Schreiben Sie SQL -Abfragen oder Skripte. Klicken Sie auf die Schaltfläche Ausführen, um eine Abfrage oder ein Skript auszuführen. Zeigen Sie die Ergebnisse an (wenn die Abfrage ausgeführt wird).
