Merkmale von Internetanwendungen und ihre architektonische Entwicklung

1. Der Unterschied zwischen traditionellen Projekten und Internetprojekten

Traditionelle Projekte:
OA, HR, CRM und andere Systeme. Zielgruppe: Unternehmensmitarbeiter.
Merkmale: weniger Projektbenutzer, relativ weniger Parallelität und hohe Benutzertoleranz.

Internetprojekte:
Taobao, Tmall, JD.com Zielgruppe: Internet
Features: Große Anzahl an Benutzern, große Anzahl an Besuchen, mehr Wert auf Benutzererfahrung : Ästhetik, Funktionalität, Geschwindigkeit, Stabilität

Bei Internetprojekten können Back-End-Ingenieure in Geschwindigkeit und Stabilität eingreifen

Geschwindigkeit: Das Öffnen einer neuen Seite dauert nur einen Moment und es gibt keine Verzögerung zwischen den Seiten.

Stabilität: 99,9 % der Website können das ganze Jahr über normal und problemlos aufgerufen werden

2. Architekturziele großer Internetprojekte:

Merkmale von Internetprojekten:

  • Viele Benutzer

  • Großer Datenverkehr und hohe Parallelität

  • Riesige Datenmenge

  • verletzlich

  • Umständliche Funktionen

  • Schnell wechseln

Messung von Website-Leistungsmetriken

  • Antwortzeit : Die Gesamtzeit, die zum Ausführen einer Anfrage vom Startzeitpunkt bis zum letzten Empfang der Antwortdaten benötigt wird
  • Parallelität : Die Anzahl der Anfragen, die das System gleichzeitig bearbeiten kann
    • Anzahl gleichzeitiger Verbindungen : bezieht sich darauf, dass der Client eine Anfrage an den Server initiiert und eine TCP-Verbindung aufbaut. Die Gesamtzahl der TCP-Verbindungen zum Server pro Sekunde
    • Anzahl der Anfragen : QPS (Query Per Second) bezieht sich auf die Anzahl der Anfragen pro Sekunde
    • Anzahl gleichzeitiger Benutzer : Wie viele Benutzer gibt es pro Zeiteinheit?
  • Durchsatz : bezieht sich auf die Anzahl der Anfragen, die das System pro Zeiteinheit verarbeiten kann
    • QPS: Query Per Second bezieht sich auf die Anzahl der Anfragen pro Sekunde
    • TPS: Transaction Per Second Anzahl der Transaktionen pro Sekunde
    • Eine Transaktion bezieht sich auf den Prozess, bei dem ein Client eine Anfrage an den Server sendet und der Server antwortet. Der Client beginnt mit der Zeitmessung, wenn er eine Anfrage sendet, und endet, wenn er die Antwort des Servers erhält. Dies wird verwendet, um die verbrauchte Zeit und die Anzahl der abgeschlossenen Transaktionen zu berechnen.

Architektonische Ziele von Internetprojekten

  • Hohe Leistung: Bieten Sie einen schnellen Zugriff
  • Hohe Verfügbarkeit: Auf Website-Dienste kann immer normal zugegriffen werden
  • Skalierbar: Durch Erhöhen oder Verringern der Hardware können die Verarbeitungskapazitäten erhöht oder verringert werden (starke Förderung der Kapazitätserweiterung).
  • Hohe Skalierbarkeit: geringe Kopplung zwischen Systemen, einfaches Hinzufügen oder Entfernen neuer Funktionsmodule durch Hinzufügen oder Entfernen
  • Sicherheit: Bietet sicheren Website-Zugriff und Datenverschlüsselung sowie eine sichere Speicherstrategie
  • Agilität: Sich an Bedürfnisse anpassen und schnell reagieren

Geclustert und verteilt

Cluster:

  • Beliebte Beschreibung: Viele Maschinen, die das Gleiche tun
  • Berufsbeschreibung: Ein Geschäftsmodul, das auf einem polymorphen Server bereitgestellt wird

verteilt:

  • Beliebte Beschreibung: Es gibt viele Maschinen, und jeder Cluster führt unterschiedliche Dinge aus. Zusammen ist es ein komplexes Ereignis (professionelle Dinge werden professionell erledigt, da für jedes Ding unterschiedliche Leistungsanforderungen gelten).

  • Berufsbeschreibung: Ein großes Geschäftssystem ist in kleine Geschäftsabschnitte unterteilt und auf verschiedenen Maschinen bereitgestellt.
    Fügen Sie hier eine Bildbeschreibung einFügen Sie hier eine Bildbeschreibung ein

Projekte im Rahmen der Clusterarchitektur erfüllen die folgenden Merkmale:

  • Hohe Leistung: Der Cluster ist skalierbar. Sollte die Leistung nicht ausreichen, können Maschinen hinzugefügt werden, um die Leistung sicherzustellen.

  • Hohe Verfügbarkeit: Solange eine Maschine nicht ausfällt, kann der Dienst bereitgestellt werden

Fügen Sie hier eine Bildbeschreibung ein
Die verteilte Clusterarchitektur kann die Architekturziele des Internetsystems gut erfüllen.

  • Hohe Leistung: Der Cluster ist skalierbar. Sollte die Leistung nicht ausreichen, können Maschinen hinzugefügt werden, um die Leistung sicherzustellen.

  • Hohe Verfügbarkeit: Solange eine Maschine nicht ausfällt, kann der Dienst bereitgestellt werden

  • Skalierbar: Erweitern und verkleinern Sie verschiedene Service-Cluster dynamisch entsprechend den Leistungsanforderungen verschiedener Services.

  • Hohe Skalierbarkeit: Wenn Sie bestimmte Dienste hinzufügen oder reduzieren müssen, erhöhen oder verringern Sie einfach die Cluster, die auf den Dienst reagieren.

Architekturentwicklung

Monolithische Architektur

Alle Dienste werden auf einem Server bereitgestellt

Fügen Sie hier eine Bildbeschreibung ein

  • Vorteile: einfache Entwicklung und Bereitstellung, bevorzugt für kleine Projekte
  • Mangel:
    • Große Codemenge und langsamer Projektstart
    • Schlechte Zuverlässigkeit
    • Schlechte Skalierbarkeit
    • Schlechte Skalierbarkeit und Wartbarkeit
    • Schlechte Leistung

vertikale Architektur

Bei der vertikalen Architektur werden mehrere Module in einer einzigen Architektur in mehrere unabhängige Projekte aufgeteilt, um mehrere unabhängige Einzelarchitekturen zu bilden

Fügen Sie hier eine Bildbeschreibung ein

Probleme mit monolithischer Architektur:

  • Das Projekt beginnt langsam
  • Schlechte Zuverlässigkeit
  • Schlechte Skalierbarkeit
  • Schlechte Skalierbarkeit und Wartbarkeit
  • Schlechte Leistung

Probleme mit vertikaler Architektur:

  • Zu viele doppelte Funktionen

Verteilte Architektur

Unter verteilter Architektur versteht man das Extrahieren öffentlicher Geschäftsmodule auf der Grundlage einer vertikalen Architektur und deren Bereitstellung als unabhängige Dienste für andere Verbraucher, um eine gemeinsame Nutzung und Wiederverwendung von Diensten zu erreichen.

Fügen Sie hier eine Bildbeschreibung ein

  • RPC:Remote-Prozeduraufruf Remote-Prozeduraufruf.

Probleme mit vertikaler Architektur:

  • Zu viele doppelte Funktionen

Probleme mit verteilter Architektur:

  • Sobald der Dienstanbieter wechselt, müssen alle Anbieter wechseln

SOA-Architektur

Fügen Sie hier eine Bildbeschreibung ein

SOA: (Service-Oriented Architecture, serviceorientierte Architektur) ist ein Komponentenmodell, das verschiedene Funktionseinheiten einer Anwendung (sogenannte Services) aufteilt und diese über definierte Schnittstellen und Verträge für diese Services verbindet

ESB: (Enterparise Service Bus) Enterprise Service Bus, Service-Vermittler. Bietet hauptsächlich Interaktion zwischen Diensten. ESB umfasst Funktionen wie: Lastausgleich, Flusskontrolle, Verschlüsselungsverarbeitung, Dienstüberwachung, Ausnahmebehandlung, Notfallüberwachung usw.

Probleme mit verteilter Architektur:

  • Sobald der Dienstanbieter wechselt, müssen alle Anbieter wechseln

Microservice-Architektur

Fügen Sie hier eine Bildbeschreibung ein

  • Die Microservice-Architektur ist eine Sublimierung von SOA. Die Microservice-Architektur betont einen zentralen Punkt: „Das Geschäft muss vollständig komponentenorientiert und serviceorientiert sein.“ Das ursprüngliche einzelne Geschäftssystem wird in mehrere Systeme aufgeteilt, die unabhängig voneinander entwickelt, entworfen und betrieben werden können. Kleine Anwendungen, Interaktion und Integration zwischen diesen kleinen Anwendungen werden durch verschiedene Dienste vervollständigt
  • Microservice-Architektur = 80 % SOA-Service-Architekturdenken + 100 % Komponentenarchitekturdenken + 80 % Domänenmodellierungsdenken

Merkmale:

  • Die Dienste sind in Komponenten unterteilt: Entwickler können Entwicklungstechnologien frei wählen, und die Teams müssen nicht gleich sein
  • Die Interaktion zwischen Diensten erfolgt im Allgemeinen über die REST-API
  • Dezentralisierung: Jeder Microservice verfügt über eine eigene private Datenbank zur Speicherung von Geschäftsdaten
  • Automatisierte Bereitstellung: Teilen Sie die Anwendung in unabhängige Einzeldienste auf, um automatisierte Bereitstellung, Tests, Betrieb und Wartung zu ermöglichen

Ich denke du magst

Origin blog.csdn.net/weixin_43828467/article/details/130033089
Empfohlen
Rangfolge