it-swarm.com.de

Was ist der wahre Unterschied zwischen einer API und einem Microservice?

Ich lerne etwas über Microservices und verstehe nicht, was der wahre Unterschied zwischen dem Erstellen eines REST API Und dem Erstellen von microservices ist.
Ich arbeite in Go, aber meine Frage gilt für alle Sprachen.

13
fm433403

Bei dem Ansatz von Microservices geht es darum, Ihr System ("Haufen Code") in viele kleine Dienste zu unterteilen, von denen jeder normalerweise einen eigenen hat:

  • Klare geschäftliche Verantwortung
  • Laufender Prozess
  • Datenbank
  • Repository für die Codeversionskontrolle (z. B. Git)
  • [~ # ~] api [~ # ~] (das Protokoll, wie andere Dienste/Clients den Microservice kontaktieren)
  • Benutzeroberfläche

Die Dienste selbst werden klein gehalten , damit bei zunehmendem Systemwachstum mehr Dienste als größere Dienste zur Verfügung stehen.

Microservices können mithilfe von REST, RPC oder einer anderen Methode miteinander kommunizieren, sodass REST oder eine API zum Thema Microservices wirklich orthogonal ist ...

Referenz: Was ist eine API? Bitte in Englisch.

12
Lior Bar-On

API = Application Programming Interface

Microservices = eine Architektur

Zusamenfassend

  • Microservice sollte eine gut definierte API verfügbar machen.
  • Microservice ist die Art und Weise, wie Sie Ihre Lösung entwickeln möchten
  • API ist das, was Ihre Verbraucher sehen.
  • Sie können APIs ohne Microservices im Backend verfügbar machen (in den meisten Nicht-Trainingsszenarien sind keine Microservices erforderlich).

Lesen Sie http://samnewman.io/books/building_microservices/ , bevor Sie sich für die Verwendung von Microservices entscheiden (es sei denn, dies dient Schulungszwecken).

7
Lech Migdal

Die Mehrzahl der Antworten basiert auf dem Verständnis der alten Schule von API als programmatischer Schnittstelle. Heutzutage ist diese Bedeutung geschmolzen und verwirrt die Leute, da einige Entwickler (aus Gründen der Einfachheit oder aus Versehen) die API einer Anwendung als die Anwendung an sich interpretierten. In diesem Fall ist es unmöglich, zwischen der modernen API und Microservices zu unterscheiden. Wir können jedoch sagen, dass eine API-Anwendung viele Microservices umfassen kann, von denen die meisten über die APIs von Microservice in der Anwendung interagieren, während andere ihre APIs möglicherweise als APIs von Applications verfügbar machen. Ein Microservice (als Service) enthält möglicherweise keine anderen Microservices (Services), kann jedoch eine Komposition von Microservices über API-basierte Aufrufe orchestrieren. Anwendungen können Microservices enthalten, in den Best Practices jedoch möglicherweise keine anderen Anwendungen.

2
Michael Poulin

Microservice ist genau definiert, wenn Sie SOC - Separation of Concern auf Entitäts-/Domänenebene verfolgen, wobei jede Entität/Domäne von anderen Diensten unabhängig ist.

zum Beispiel Der Benutzerdienst ist nur für das Speichern, Aktualisieren und Löschen benutzerbezogener Informationen verantwortlich.

Microservice Backend und Frontend Microservice kann weiterhin in 2 Teile aufgeteilt werden

  1. frontend-Microservice, der den Rest-Endpunkt genau wie Web-API anzeigt
  2. backend-Microservice, der alle Operationen ausführt.

Rest API ist mehr von Endpunkten, die der Außenwelt ausgesetzt sind, und kann, wie oben erläutert, auch mit Microservices verwendet werden.

2
Vijay Parmar

Microservices

Bei einer Mikroservice-Architektur geht es darum, eine Anwendungslogik in kleine Teile oder "Komponenten" aufzuteilen, die zwischen ihnen agieren und/oder über eine API verfügbar gemacht werden können.

API

Eine (Web-) Anwendung muss die Geschäftslogik mit allen Objektentitäten (Modell) und möglichen Operationen darauf entwerfen. Eine (Anwendungsprogrammierschnittstelle] [ https://en.wikipedia.org/wiki/Application_programming_interface ) ist eine Möglichkeit, Anforderungen an eine Anwendung zu richten, indem bestimmte Einstiegspunkte verfügbar gemacht werden, die für das Aufrufen zuständig sind die entsprechenden Anwendungsvorgänge.

REST (ful) APIs ("REST" wie in Representational State Transfer) sind APIs, die mindestens diese 5 Einschränkungen erfüllen:

  • Benutzeroberfläche unterscheidet sich von Datenspeicherung und -manipulation (Client-Server-Architektur)
  • Auf dem Server ist kein Client-Kontext gespeichert ("statuslos")
  • Serverantworten müssen sich implizit oder explizit als zwischenspeicherbar definieren oder nicht
  • Der Client muss die Ebenen zwischen ihm und dem Server nicht kennen
  • Antwort-/Anforderungsnachrichten müssen: selbstbeschreibend sein; erlauben, eine Ressource zu identifizieren; Verwenden Sie Darstellungen, mit denen Sie die Ressourcen manipulieren können. verfügbare Aktionen und Ressourcen ankündigen ("Uniform Interface").

"Der wahre Unterschied"

Also, während diese Begriffe offensichtlich verwandt sind, sind sie eindeutig unterschiedliche Konzepte:

  • Ein [~ # ~] api [~ # ~] legt Operationen offen, die von einem Server bereitgestellt werden, der möglicherweise (aber nicht unbedingt) geschält wird in kleinere Komponenten ( Microservices ).

  • Während eine typische Web-API (REST) ​​das HTTP-Protokoll zwischen dem Client und dem Server verwendet, können Komponenten innerhalb einer Microservice-Architektur auch mit anderen Protokollen kommunizieren (z. B. [~ # ~] wamp [~ # ~) ] , AMQP , JSON-RPC , XML-RPC , SOAP , ...)

0

Wenn Sie einen Web-API - Server haben und diesen in mehrere unabhängige Miniserver aufteilen, verwenden Sie einen Proxyserver und einen Lastenausgleich, um sie zu clustern und (optional) jeder eine eigene Datenbank zuzuweisen Entität), das ist eine Microservice-Architektur.

0
LEMUEL ADANE