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?
quelle
Antworten:
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.
quelle