

10-Minuten-Schnelllösung |. Groß angelegte verteilte E-Commerce-Systemarchitektur
Dieser Artikel ist eine technische Zusammenfassung des Erlernens einer groß angelegten verteilten Website-Architektur. Eine kurze Beschreibung der Architektur einer leistungsstarken, hochverfügbaren, skalierbaren und erweiterbaren verteilten Website sowie eine Architekturreferenz werden gegeben. Ein Teil des Artikels besteht aus Lesenotizen und ein Teil aus einer Zusammenfassung persönlicher Erfahrungen, die einen guten Referenzwert für groß angelegte verteilte Website-Architekturen haben.
„Groß angelegte verteilte Website-Architekturtechnologie“Riesige Datenmengen. Der Dienst ist hochverfügbar. Die Sicherheitsumgebung ist schlecht und anfällig für Netzwerkangriffe. Mehrere Funktionen, schnellere Entwicklung, häufige Veröffentlichungen. Entwickeln Sie sich schrittweise von klein zu groß. Benutzer- zentriertKostenloser Service, kostenpflichtige Erfahrung
2. Große Website-Architekturziele
- Hohe Leistung: Bieten Sie ein schnelles Zugriffserlebnis.
- Hohe Verfügbarkeit: Der Website-Service ist immer normal erreichbar.
- Skalierbar: Rechenleistung durch Hardware erhöhen/verringern, erhöhen/verringern.
- Sicherheit: Bietet sicheren Website-Zugriff und Datenverschlüsselung, sichere Speicherung und andere Strategien.
- Erweiterbarkeit: Neue Funktionen/Module bequem hinzufügen/entfernen.
- Agilität: auf Anfrage, schnelle Reaktion;
Schichtung: Kann im Allgemeinen in Anwendungsschicht und Serviceschicht unterteilt werden. Daten Schicht, Verwaltungsschicht und Analyseschicht; Segmentierung: im Allgemeinen nach Geschäfts-/Modul-/Funktionsmerkmalen unterteilt, beispielsweise ist die Anwendungsschicht in Homepage und Benutzercenter unterteilt. Verteilt: Stellen Sie Anwendungen separat bereit (z. B. auf mehreren physischen Maschinen) und arbeiten Sie über Remote-Aufrufe zusammen. Cluster: Eine Anwendung/ein Modul/eine Funktion wird in mehreren Kopien (z. B. mehreren physischen Maschinen) bereitgestellt, um externen Zugriff durch Lastausgleich bereitzustellen. Caching: Platzieren Sie Daten möglichst nah an der Anwendung oder dem Benutzer, um den Zugriff zu beschleunigen. Asynchron: Asynchronisieren Sie synchrone Vorgänge. Der Client sendet eine Anfrage, ohne auf die Antwort des Servers zu warten. Nachdem der Server die Verarbeitung abgeschlossen hat, informiert er den Anforderer über Benachrichtigungen oder Abfragen. Bezieht sich im Allgemeinen auf: Anforderung-Antwort-Benachrichtigungsmodus. Redundanz: Erhöhen Sie Replikate, um Verfügbarkeit, Sicherheit und Leistung zu verbessern. Sicherheit: Wirksame Lösungen für bekannte Probleme haben und Erkennungs- und Abwehrmechanismen für unbekannte/potenzielle Probleme einrichten. Automatisierung: Verwenden Sie Maschinen, um sich wiederholende Aufgaben zu erledigen, die kein menschliches Eingreifen durch Werkzeuge erfordern. Agilität: Akzeptieren Sie aktiv veränderte Anforderungen und reagieren Sie schnell auf Geschäftsentwicklungsbedürfnisse.
4. Hochleistungsarchitektur
ist benutzerzentriert und bietet ein schnelles Webzugriffserlebnis. Die Hauptparameter sind kurze Reaktionszeit, große Fähigkeit zur gleichzeitigen Verarbeitung, hoher Durchsatz und stabile Leistungsparameter.
Kann in Front-End-Optimierung, Anwendungsschichtoptimierung, Codeschichtoptimierung und Speicherschichtoptimierung unterteilt werden.
Front-End-Optimierung: der Teil vor der Website-Geschäftslogik; Browser-Optimierung: Reduzieren Sie die Anzahl der HTTP-Anfragen, verwenden Sie den Browser-Cache, aktivieren Sie die Komprimierung, CSS-JS-Position, JS asynchron, reduzieren Sie die Cookie-Übertragung; Beschleunigung, Reverse-Proxy; Optimierung der Anwendungsebene: der Server, der das Website-Geschäft abwickelt. Verwenden Sie Cache, asynchron, Cluster Codeoptimierung: angemessene Architektur, Multithreading, Wiederverwendung von Ressourcen (Objektpool, Thread-Pool usw.), gute Datenstruktur, JVM-Optimierung, Singleton, Cache usw.; -
Speicheroptimierung: Cache, Solid-State-Laufwerk, Glasfaserübertragung, optimiertes Lesen und Schreiben, Festplattenredundanz, verteilter Speicher (HDFS), NoSQL usw.
5. Hochverfügbare Architektur
Große Websites sollten jederzeit zugänglich sein und normale externe Dienste bereitstellen. Aufgrund der Komplexität, Verteilung, günstigen Server, Open-Source-Datenbanken, Betriebssysteme und anderer Merkmale großer Websites ist es schwierig, eine hohe Verfügbarkeit sicherzustellen, was bedeutet, dass Ausfälle von Websites unvermeidlich sind.
Wie die Benutzerfreundlichkeit verbessert werden kann, ist ein Problem, das dringend gelöst werden muss. Zunächst müssen wir dies auf architektonischer Ebene berücksichtigen und bei der Planung die Verfügbarkeit berücksichtigen. In der Branche werden im Allgemeinen mehrere Neunen zur Darstellung von Verfügbarkeitsindikatoren verwendet, beispielsweise vier Neunen (99,99), und die zulässige Nichtverfügbarkeitszeit in einem Jahr beträgt 53 Minuten.
Zur Lösung von Hochverfügbarkeitsproblemen kommen im Allgemeinen unterschiedliche Strategien auf verschiedenen Ebenen zum Einsatz.
Anwendungsschicht: Im Allgemeinen zustandslos konzipiert, hat sie keinen Einfluss darauf, welcher Server für die Verarbeitung der einzelnen Anforderungen verwendet wird. Im Allgemeinen wird die Lastausgleichstechnologie (die das Problem der Sitzungssynchronisierung lösen muss) verwendet, um eine hohe Verfügbarkeit zu erreichen. Dienstschicht: Lastausgleich, hierarchische Verwaltung, schneller Ausfall (Timeout-Einstellung), asynchrone Aufrufe, Dienstverschlechterung, idempotentes Design usw. Datenschicht: Redundante Sicherung (kaltes, heißes Backup [synchron, asynchron], warmes Backup), Failover (Bestätigung, Übertragung, Wiederherstellung). Die berühmte theoretische Grundlage für eine hohe Datenverfügbarkeit ist die CAP-Theorie (Persistenz, Verfügbarkeit, Datenkonsistenz [starke Konsistenz, Benutzerkonsistenz, letztendliche Konsistenz]). Aufgrund des ursprünglichen Architekturdesigns können die Verarbeitungskapazitäten des Systems durch Hinzufügen/Reduzieren von Hardware (Servern) erhöht oder verringert werden.
Anwendungsebene: Teilen Sie die Anwendung vertikal oder horizontal auf. Anschließend erfolgt ein Lastausgleich für eine einzelne Funktion (DNS, HTTP [Reverse-Proxy], IP, Verbindungsschicht). Dienstschicht: ähnlich der Anwendungsschicht;
- Datenschicht: Unterdatenbank, Untertabelle, NoSQL usw.; häufig verwendeter Algorithmus Hash, konsistenter Hash.
7. Skalierbare Architektur kann problemlos Funktionsmodule hinzufügen/entfernen und bietet eine gute Skalierbarkeit auf Code-/Modulebene.
Modularisierung und Komponentisierung: hohe Kohäsion, geringe Kopplung, verbesserte Wiederverwendbarkeit und Skalierbarkeit. Stabile Schnittstelle: Definieren Sie eine stabile Schnittstelle. Während die Schnittstelle unverändert bleibt, kann sich die interne Struktur „nach Belieben“ ändern.
- Entwurfsmuster: Wenden Sie objektorientierte Ideen und Prinzipien an und verwenden Sie Entwurfsmuster, um auf Codeebene zu entwerfen.
- Nachrichtenwarteschlange: Ein modulares System, das über Nachrichtenwarteschlangen interagiert, um Abhängigkeiten zwischen Modulen zu entkoppeln.
- Verteilte Dienste: Öffentliche Module sind serviceorientiert, um die Nutzung durch andere Systeme zu ermöglichen und so die Wiederverwendbarkeit und Skalierbarkeit zu verbessern.
8. Sicherheitsarchitektur -
Wirksame Lösungen für bekannte Probleme haben und Erkennungs- und Abwehrmechanismen für unbekannte/potenzielle Probleme einrichten. Bei Sicherheitsproblemen müssen wir zunächst das Sicherheitsbewusstsein verbessern und einen wirksamen Sicherheitsmechanismus einrichten, um sicherzustellen, dass Serverkennwörter nicht durchgesickert sind, Kennwörter monatlich aktualisiert werden und nicht innerhalb von drei Wochen wiederholt werden können Sicherheitsscans usw. Den Aufbau des Sicherheitssystems institutionalisiert stärken. Gleichzeitig muss allen sicherheitsrelevanten Aspekten Beachtung geschenkt werden. Sicherheitsprobleme können nicht ignoriert werden, einschließlich Infrastruktursicherheit, Sicherheit von Anwendungssystemen, Datenvertraulichkeit und -sicherheit usw. Infrastruktursicherheit: Hardwarebeschaffung, Betriebssystem- und Netzwerkumgebungssicherheit. Nutzen Sie im Allgemeinen formelle Kanäle, um hochwertige Produkte zu kaufen, ein sicheres Betriebssystem auszuwählen, Schwachstellen rechtzeitig zu beheben und Antivirensoftware und Firewalls zu installieren. Schützen Sie sich vor Viren und Hintertüren. Legen Sie Firewall-Richtlinien fest, richten Sie DDOS-Abwehrsysteme ein, verwenden Sie Angriffserkennungssysteme und führen Sie eine Subnetzisolierung durch. Sicherheit des Anwendungssystems: Verwenden Sie während der Programmentwicklung die richtigen Methoden, um bekannte häufige Probleme auf Codeebene zu lösen. Verhindern Sie Cross-Site-Scripting-Angriffe (XSS), Injektionsangriffe, Cross-Site Request Forgery (CSRF), Fehlermeldungen, HTML-Kommentare, Datei-Uploads, Path Traversal usw. Sie können auch eine Webanwendungs-Firewall (z. B. ModSecurity) verwenden, um Sicherheitslückenscans und andere Maßnahmen zur Stärkung der Sicherheit auf Anwendungsebene durchzuführen. Datenvertraulichkeit und -sicherheit: Speichersicherheit (Speicherung in zuverlässigen Geräten, Echtzeit-, geplante Sicherung), Aufbewahrungssicherheit (verschlüsselte Aufbewahrung wichtiger Informationen, Auswahl geeigneter Mitarbeiter für komplexe Aufbewahrung und Erkennung usw.), Übertragungssicherheit (Verhinderung von Datendiebstahl und Datenmanipulation);
Häufig verwendete Verschlüsselungs- und Entschlüsselungsalgorithmen (Single-Hash-Verschlüsselung [MD5, SHA], symmetrische Verschlüsselung [DES, 3DES, RC]), asymmetrische Verschlüsselung [RSA] usw.
9. Agilität
Das architektonische Design sowie das Betriebs- und Wartungsmanagement der Website müssen sich an Änderungen anpassen und eine hohe Skalierbarkeit und Skalierbarkeit bieten. Bewältigen Sie problemlos die schnelle Geschäftsentwicklung, den plötzlichen Anstieg des Zugriffs mit hohem Datenverkehr und andere Anforderungen.
Zusätzlich zu den oben vorgestellten architektonischen Elementen ist es auch notwendig, die Ideen des agilen Managements und der agilen Entwicklung einzuführen. Vereinheitlichen Sie Geschäft, Produkte, Technologie, Betrieb und Wartung, passen Sie sich den Anforderungen an und reagieren Sie schnell.
10. Beispiele für groß angelegte Architektur
Das Obige verwendet eine siebenschichtige logische Architektur, die erste Schicht ist die Kundenschicht, die zweite Schicht ist die Front-End-Optimierungsschicht und die dritte Die Schicht ist die Anwendungsschicht, die vierte Schicht ist die Serviceschicht und die fünfte Schicht ist die Datenspeicherschicht, die sechste Schicht ist die Big-Data-Speicherschicht und die siebte Schicht ist die Big-Data-Verarbeitungsschicht.
Kundenebene: Unterstützt PC-Browser und mobile APP. Der Unterschied besteht darin, dass auf die mobile APP direkt über IP und Reverse-Proxy-Server zugegriffen werden kann. Front-End-Schicht: Verwendung von DNS-Lastausgleich, lokaler CDN-Beschleunigung und Reverse-Proxy-Diensten; Anwendungsschicht: Website-Anwendungscluster, vertikal nach Unternehmen aufgeteilt, z. B. Produktanwendungen, Mitgliederzentren usw.; -
Dienstschicht: Bietet öffentliche Dienste wie Benutzerdienste, Bestelldienste, Zahlungsdienste usw.; Datenschicht: unterstützt relationale Datenbankcluster (unterstützt die Lese-/Schreibtrennung), NOSQL-Cluster und ein verteiltes Dateisystem Cluster; und verteilter Cache; Big Data Storage Layer: Unterstützt die Protokolldatenerfassung in der Anwendungsschicht und der Serviceschicht, strukturierte und halbstrukturierte Datenerfassung in relationalen Datenbanken und NOSQL-Datenbanken; offline durch Mapreduce-Datenanalyse oder Storm-Echtzeit-Datenanalyse, und die verarbeiteten Daten werden in einer relationalen Datenbank gespeichert. (Bei der tatsächlichen Verwendung werden Offline-Daten und Echtzeitdaten entsprechend den Geschäftsanforderungen klassifiziert und verarbeitet und in verschiedenen Datenbanken zur Verwendung durch die Anwendungsschicht oder Serviceschicht gespeichert.)
Sie alle haben ihre eigenen Geschäftsmerkmale und auch die Systemarchitektur ist unterschiedlich. Trotzdem können wir auch gemeinsame Technologien aus diesen unterschiedlichen Website-Hintergründen finden. Diese Technologien und Methoden werden häufig in der Architektur großer Website-Systeme verwendet. Lassen Sie uns diese Technologien und Methoden verstehen, indem wir den Entwicklungsprozess großer Website-Systeme vorstellen. bedeutet.
Die anfängliche Website-Architektur
Die anfängliche Architektur, Anwendungen, Datenbanken und Dateien werden alle auf einem Server bereitgestellt, wie im Bild gezeigt:
Das obige ist der detaillierte Inhalt von10-Minuten-Schnelllösung |. Groß angelegte verteilte E-Commerce-Systemarchitektur. 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

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Dreamweaver CS6
Visuelle Webentwicklungstools

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung