Erstellen Sie ein AngularJS-Frontend für eine Microservices-Anwendung

9

Ich möchte eine Microservices- Anwendung erstellen , in der jeder Microservice für seinen eigenen Teil des Frontends verantwortlich ist. Gleichzeitig möchte ich das Frontend in AngularJS als Single Page Application (SPA) erstellen. Wenn ein neuer Microservice bereitgestellt wird, nimmt das Web-Front-End den neuen Front-End-Teil automatisch auf und fügt ihn dem SPA hinzu. Was wäre der beste Weg, dies zu realisieren?

Das habe ich mir ausgedacht. Jeder Microservice kann für sein eigenes Angular-Modul verantwortlich sein. Wenn der Kunde dann zur Anwendung navigiert, kann eine Serverkomponente (ASP.NET oder JSP) sehen, welche Microservices online sind, und eine HTML-Seite erstellen, die die Winkelmodule dieser Microservices enthält.

Die Front-End-Komponente kann auch einige Microservices für bestimmte Kunden aktivieren, die über erweiterte Berechtigungen verfügen, z. B. Administratoren oder VIP-Kunden.

Damit dies funktioniert, brauche ich natürlich eine gut strukturierte Methode, damit jeder Microservice einen Teil des Bildschirms einnimmt, ohne zu wissen, welche anderen Microservices auf dem Bildschirm angezeigt werden. Eine einfache Lösung wäre, für jeden Microservice eine Registerkarte zu erstellen. Auf der Registerkarte kann der zuständige Microservice seine Funktionalität auf die Seite stellen. Die Front-End-Komponente ist für allgemeine Dinge wie (Winkel-) Routing und Look-and-Feel verantwortlich.

Ist dies der beste Weg, um dieses Ziel zu erreichen? Hat jemand Erfahrung damit?

Nicojs
quelle
Hört sich gut an, das habe ich noch nicht ausprobiert, aber ich habe gehört, dass dies der richtige Weg ist. Achten Sie nur darauf, Frontend und Services nicht zu stark aufzuteilen. Lassen Sie uns wissen, wie es funktioniert, ich freue mich darauf, von Ihnen zu hören :)
VsMaX
@nicojs neugierig zu wissen, die Implementierung, die Sie für dieses Szenario genommen haben
Rakesh Sankar

Antworten:

3

Haftungsausschluss: Ich habe keine Anwendung mit einer Microservices-Architektur erstellt. Ich verwende hier einfach meine Intuition und das, was ich für den gesunden Menschenverstand halte.

Ich glaube, dass der Versuch, dies im Front-End zu schaffen, übertrieben ist. Ich würde empfehlen, dass Sie ein Backend für Ihre Einzelseitenanwendung erstellen, das weiß, welche Microservices verfügbar sind oder nicht (sei es durch Überprüfen der von Ihnen erwähnten Benutzeranmeldeinformationen oder durch Ausfall des Dienstes usw.), und das alles koordiniert . Ich würde dies die Anwendungsschicht nennen , die alles zusammenklebt und als Fassade für den Zugriff auf Ihre verschiedenen Mikrodienste fungiert.

Ihr SPA muss nicht wissen, dass es seine Daten von Microservices bezieht. Es sollte auf jeden Fall die Daten von einem einzigen Einstiegspunkt anfordern, der die Abfragen an die entsprechenden Dienste sendet.

marco-fiset
quelle