Microservice-Architektur - Lernen, Erstellen und Bereitstellen von Microservices



In diesem Blog wird die Microservice-Architektur ausführlich erläutert. Es enthält auch die Vor- und Nachteile sowie eine Fallstudie, die die Architektur von UBER erklärt.

Microservice-Architektur:

Von meinem müssen Sie über ein grundlegendes Verständnis der Microservice-Architektur verfügen.Aber ein Profi mit erfordert mehr als nur die Grundlagen. In diesem Blog werden Sie in die Tiefe der Architekturkonzepte eintauchen und diese anhand einer UBER-Fallstudie umsetzen.

In diesem Blog erfahren Sie Folgendes:





  • Definition der Microservice-Architektur
  • Schlüsselkonzepte der Microservice-Architektur
  • Vor- und Nachteile der Microservice-Architektur
  • UBER - Fallstudie

Sie können sich auf die beziehen , um die Grundlagen und Vorteile von Microservices zu verstehen.

Es wird nur fair sein, wenn ich Ihnen die Definition von Microservices gebe.



Definition von Microservices

Daher gibt es keine ordnungsgemäße Definition von Microservices, auch bekannt als Microservice Architecture, aber Sie können sagen, dass es sich um ein Framework handelt, das aus kleinen, individuell bereitstellbaren Diensten besteht, die unterschiedliche Vorgänge ausführen.

So erstellen Sie eine Singleton-Klasse in Java

Microservices konzentrieren sich auf eine einzelne Geschäftsdomäne, die als vollständig unabhängige bereitstellbare Services implementiert und auf verschiedenen Technologie-Stacks implementiert werden kann.

Unterschiede zwischen monolithischer Architektur und Microservices - Microservice Architecture - Edureka



Abbildung 1: Unterschied zwischen monolithischer und Microservice-Architektur - Microservice-Architektur

Beziehen Sie sich auf das obige Diagramm, um den Unterschied zwischen monolithischer und Mikroservice-Architektur zu verstehen.Zum besseren Verständnis der Unterschiede zwischen den beiden Architekturen können Sie auf meinen vorherigen Blog verweisen

Lassen Sie mich zum besseren Verständnis einige Schlüsselkonzepte der Microservice-Architektur erläutern.

Schlüsselkonzepte der Microservice-Architektur

Bevor Sie mit der Erstellung eigener Anwendungen mithilfe von Microservices beginnen, müssen Sie sich über den Umfang und die Funktionen Ihrer Anwendung im Klaren sein.

Im Folgenden finden Sie einige Richtlinien, die bei der Erörterung von Microservices zu beachten sind.

Richtlinien beim Entwerfen von Microservices

  • Wenn Sie sich als Entwickler für die Erstellung einer Anwendung entscheiden, trennen Sie die Domänen und machen Sie sich mit den Funktionen klar.
  • Jeder von Ihnen entworfene Microservice darf sich nur auf einen Service der Anwendung konzentrieren.
  • Stellen Sie sicher, dass Sie die Anwendung so gestaltet haben, dass jeder Dienst einzeln bereitgestellt werden kann.
  • Stellen Sie sicher, dass die Kommunikation zwischen Microservices über einen zustandslosen Server erfolgt.
  • Jeder Dienst kann in kleinere Dienste mit eigenen Mikrodiensten umgestaltet werden.

Nachdem Sie beim Entwerfen von Microservices die grundlegenden Richtlinien gelesen haben, wollen wir die Architektur von Microservices verstehen.

Wie funktioniert die Microservice-Architektur?

Eine typische Microservice-Architektur (MSA) sollte aus folgenden Komponenten bestehen:

  1. Kunden
  2. Identitätsanbieter
  3. Gateway-API
  4. Nachrichtenformate
  5. Datenbanken
  6. Statischer Inhalt
  7. Management
  8. Serviceerkennung

Siehe das folgende Diagramm.

Figur 2: Architektur von Microservices - Microservice-Architektur

Ich weiß, dass die Architektur etwas komplex aussieht, aber lassen Sieichvereinfache es für dich.

1. Kunden

Die Architektur beginnt mit verschiedenen Arten von Clients von verschiedenen Geräten, die versuchen, verschiedene Verwaltungsfunktionen wie Suchen, Erstellen, Konfigurieren usw. auszuführen.

2. Identitätsanbieter

Konvertieren Sie das Datum der Zeichenfolge in Java

Diese Anforderungen von den Clients werden dann an die Identitätsanbieter weitergeleitet, die die Anforderungen von Clients authentifizieren und die Anforderungen an API Gateway übermitteln. Die Anforderungen werden dann über ein genau definiertes API-Gateway an die internen Dienste übermittelt.

3. API-Gateway

Da Clients die Dienste nicht direkt aufrufen, fungiert API Gateway als Einstiegspunkt für die Clients, um Anforderungen an geeignete Microservices weiterzuleiten.

Die Verwendung eines API-Gateways bietet folgende Vorteile:

  • Alle Dienste können ohne Wissen der Kunden aktualisiert werden.
  • Dienste können auch Messaging-Protokolle verwenden, die nicht webfreundlich sind.
  • Das API-Gateway kann übergreifende Funktionen wie Sicherheit, Lastausgleich usw. ausführen.

Nach dem Empfang der Anforderungen von Clients besteht die interne Architektur aus Mikrodiensten, die über Nachrichten miteinander kommunizieren, um Clientanforderungen zu verarbeiten.

4. Nachrichtenformate

Es gibt zwei Arten von Nachrichten, über die sie kommunizieren:

  • Synchrone Nachrichten: In Situationen, in denen Clients auf die Antworten eines Dienstes warten, werden diese normalerweise von Microservices verwendet REST (Representational State Transfer) da es auf einem zustandslosen Client-Server und dem HTTP-Protokoll . Dieses Protokoll wird verwendet, da es sich um eine verteilte Umgebung handelt. Jede Funktionalität wird mit einer Ressource zum Ausführen von Vorgängen dargestellt
  • Asynchrone Nachrichten: In Situationen, in denen Clients nicht auf die Antworten eines Dienstes warten, verwenden Microservices normalerweise Protokolle wie z AMQP, STOMP, MQTT . Diese Protokolle werden bei dieser Art der Kommunikation verwendet, da die Art der Nachrichten definiert ist und diese Nachrichten zwischen Implementierungen interoperabel sein müssen.

Die nächste Frage, die Ihnen möglicherweise in den Sinn kommt, ist, wie die Anwendungen, die Microservices verwenden, mit ihren Daten umgehen.

5. Datenverarbeitung

Nun, jeder Microservice besitzt eine private Datenbank, um seine Daten zu erfassen und die entsprechenden Geschäftsfunktionen zu implementieren. Außerdem werden die Datenbanken von Microservices nur über ihre Service-API aktualisiert. Siehe das folgende Diagramm:

Figur 3: Darstellung von Microservices im Umgang mit Daten - Microservice-Architektur

Die von Microservices bereitgestellten Dienste werden auf jeden Remote-Dienst übertragen, der die prozessübergreifende Kommunikation für verschiedene Technologie-Stacks unterstützt.

6. Statischer Inhalt

Nachdem die Microservices in sich selbst kommuniziert haben, stellen sie den statischen Inhalt für einen Cloud-basierten Speicherdienst bereit, der sie über direkt an die Clients liefern kann Content Delivery Networks (CDNs) .

Abgesehen von den oben genannten Komponenten gibt es einige andere Komponenten, die in einer typischen Microservices-Architektur erscheinen:

7. Management

Diese Komponente ist dafür verantwortlich, die Dienste auf Knoten auszugleichen und Fehler zu identifizieren.

8. Serviceerkennung

Dient als Leitfaden für Microservices, um den Kommunikationsweg zwischen ihnen zu finden, da eine Liste der Dienste verwaltet wird, auf denen sich Knoten befinden.

Abonniere unseren Youtube-Kanal, um neue Updates zu erhalten ..!

Schauen wir uns nun die Vor- und Nachteile dieser Architektur an, um besser zu verstehen, wann diese Architektur verwendet werden muss.

Vor- und Nachteile der Microservice-Architektur

Siehe nachstehende Tabelle.

Vorteile der Microservice-Architektur Nachteile von Microservice Die Architektur
Freiheit, verschiedene Technologien zu nutzenErhöht die Probleme bei der Fehlerbehebung
Jeder Microservice konzentriert sich auf einzelne GeschäftsfunktionenErhöht die Verzögerung aufgrund von Fernanrufen
Unterstützt einzelne einsetzbare EinheitenErhöhter Aufwand für Konfiguration und andere Vorgänge
Ermöglicht häufige SoftwareversionenEs ist schwierig, die Transaktionssicherheit aufrechtzuerhalten
Gewährleistet die Sicherheit jedes DienstesEs ist schwierig, Daten über verschiedene Dienstgrenzen hinweg zu verfolgen
Mehrere Dienste werden parallel entwickelt und bereitgestelltEs ist schwierig, Code zwischen Diensten zu verschieben

Lassen Sie uns mehr über Microservices verstehen, indem wir die bisherige Architektur von UBER mit der jetzigen vergleichen.

UBER-FALLSTUDIE

Frühere Architektur von UBER

r Maschinelles Lernen am Beispiel

Wie viele Startups begann UBER seine Reise mit einer monolithischen Architektur, die für ein einziges Angebot in einer einzigen Stadt gebaut wurde. Eine einzige Codebasis schien zu diesem Zeitpunkt bereinigt zu sein und löste die Kerngeschäftsprobleme von UBER. Als UBER weltweit expandierte, standen sie jedoch vor verschiedenen Problemen hinsichtlich Skalierbarkeit und kontinuierlicher Integration.

Figur 4: Monolithische Architektur von UBER - Microservice Architecture

Das obige Diagramm zeigt die vorherige Architektur von UBER.

  • Es ist eine REST-API vorhanden, mit der sich Passagier und Fahrer verbinden.
  • Drei verschiedene Adapter werden mit der darin enthaltenen API verwendet, um Aktionen wie Abrechnung, Zahlungen und das Senden von E-Mails / Nachrichten auszuführen, die bei der Buchung eines Taxis angezeigt werden.
  • Eine MySQL-Datenbank zum Speichern aller Daten.

Wenn Sie hier also feststellen, dass alle Funktionen wie Passagierverwaltung, Abrechnung, Benachrichtigungsfunktionen, Zahlungen, Reisemanagement und Fahrermanagement in einem einzigen Rahmen zusammengefasst wurden.

Problemstellung

Während UBER begann, weltweit zu expandieren, brachte diese Art von Framework verschiedene Herausforderungen mit sich. Das Folgende sind einige der wichtigsten Herausforderungen

  • Alle Funktionen mussten immer wieder neu erstellt, bereitgestellt und getestet werden, um eine einzelne Funktion zu aktualisieren.
  • Das Beheben von Fehlern in einem einzelnen Repository wurde extrem schwierig, da Entwickler den Code immer wieder ändern mussten.
  • Es war ziemlich schwierig, die Funktionen gleichzeitig mit der Einführung neuer Funktionen weltweit zu skalieren.

Lösung

Um solche Probleme zu vermeiden, hat UBER beschlossen, seine Architektur zu ändern und den anderen wachstumsstarken Unternehmen wie Amazon, Netflix, Twitter und vielen anderen zu folgen. Daher entschied sich UBER, seine monolithische Architektur in mehrere Codebasen aufzuteilen, um eine Microservice-Architektur zu bilden.

In der folgenden Abbildung sehen Sie sich die Microservice-Architektur von UBER an.

Abbildung 5: Microservice-Architektur von UBER - Microservice-Architektur

  • Die wichtigste Änderung, die wir hier beobachten, ist die Einführung des API-Gateways, über das alle Fahrer und Passagiere verbunden sind. Über das API-Gateway sind alle internen Punkte verbunden, z. B. Passagiermanagement, Fahrermanagement, Reisemanagement und andere.
  • Die Einheiten sind einzelne separate einsetzbare Einheiten, die separate Funktionen ausführen.
    • Beispiel: Wenn Sie Änderungen an den Abrechnungs-Microservices vornehmen möchten, müssen Sie nur Abrechnungs-Microservices bereitstellen und die anderen nicht.
  • Alle Merkmale wurden nun einzeln skaliert, d. H. Die gegenseitige Abhängigkeit zwischen jedem einzelnen Merkmal wurde entfernt.
    • Zum Beispiel wissen wir alle, dass die Anzahl der Personen, die nach Taxis suchen, vergleichsweise höher ist als die Anzahl der Personen, die tatsächlich ein Taxi buchen und Zahlungen leisten. Dies lässt den Schluss zu, dass die Anzahl der Prozesse, die im Passagiermanagement-Microservice ausgeführt werden, höher ist als die Anzahl der Prozesse, die im Zahlungsverkehr ausgeführt werden.

In diesemWegUBER profitierte von der Verlagerunges istArchitektur von monolithisch bis Microservices.

Ich hoffe, Sie haben diesen Beitrag über Microservice Architecture genossen.Ich werde mir weitere Blogs einfallen lassen, die auch praktische Informationen enthalten.
Möchten Sie mehr über Microservices erfahren?

Wenn Sie Microservices erlernen und Ihre eigenen Anwendungen erstellen möchten, lesen Sie unsere Dies beinhaltet ein von Lehrern geführtes Live-Training und praktische Projekterfahrung. Diese Schulung hilft Ihnen dabei, Microservices gründlich zu verstehen und das Thema zu beherrschen.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren von ” Microservice-Architektur Und ich werde mich bei Ihnen melden.