Wenn wir alle Funktionalitäten in einem einzigen Projekt entwickeln, spricht man von einer auf der Monolith-Architektur basierenden Anwendung.
Wir werden unsere Anwendung als JAR/War verpacken, um sie auf dem Server bereitzustellen.
Da die Monolith-Anwendung alle Funktionen enthält, wird sie zu einem fetten Glas/Krieg.
Vorteile
1) Einfach zu entwickeln und zu verwalten.
2) Alles ist an einem Ort verfügbar.
3) Konfiguration nur einmal erforderlich.
Nachteile
1) Schwierig zu warten
2) Single Point of Failure
3) Wenn wir Änderungen vornehmen, wird das gesamte Projekt erneut bereitgestellt und getestet.
4) Der Entwickler kennt sich möglicherweise nicht mit den gesamten Modulen aus, daher ist es schwieriger, mit der Behebung des Problems zu beginnen.
5) Wenn ein Modul zu stark ausgelastet ist, müssen wir mehrere Instanzen der gesamten Anwendung erstellen, was zu viel Platz beansprucht, da jedes Modul eng miteinander verbunden ist.
Um die Probleme der monolithischen Architektur zu überwinden, kamen Microservices-Architekturen auf den Markt
Microservices ist keine Programmiersprache, kein Framework oder API. Microservices ist ein architektonisches Entwurfsmuster.
Microservices schlagen vor, Anwendungsfunktionalitäten mit loser Kopplung zu entwickeln.
In der Microservices-Architektur entwickeln wir nicht alle Funktionalitäten in einem einzigen Projekt. Wir werden die Projektfunktionalitäten in mehrere REST-APIs aufteilen.
Microservices beziehen sich nicht nur auf Java. Jedes programmiersprachenspezifische Projekt kann Microservices Architecture verwenden.
Microservices ist ein Ansatz, bei dem wir kleine Dienste entwickeln. Jeder Dienst wird auf einem eigenen Container/Prozess/Server ausgeführt. Die Dienste sollten leichtgewichtig und unabhängig einsetzbar sein. Dies ermöglicht eine schnellere Entwicklung, Bereitstellung und Skalierbarkeit.
Wie Sie sehen können, wurden das Mitarbeitermodul, das Kundenmodul, das Adressmodul und das Kursmodul der Monolith-Anwendung jetzt in kleine kleine Dienste umgewandelt, sodass sie hier wie Mitarbeiterservice, Kundenservice, Adressservice und Kursservice sind. und in Monolith-Anwendungen gibt es eine einzelne Datenbanknutzung, aber in Microservice-Anwendungen verfügt jeder Dienst über seine eigene Datenbank. und sie sind jetzt voneinander abhängig. und jeder Dienst ist die Kommunikation untereinander und wirft den Rest auf.
Vorteile
Datenbankunabhängigkeit.
Jeder Dienst ist unabhängig voneinander (lose Kopplung), sodass wir jeden Dienst unabhängig bereitstellen können.
Wenn Sie Änderungen an einem Dienst vornehmen, müssen Sie nicht den gesamten Dienst bereitstellen, sondern nur einen Dienst einzeln bereitstellen.
Entwickler, die an einem Dienst arbeiten, erfordern nicht die Kenntnis der gesamten Anwendung.
Der Ausfall eines einzelnen Microservice hat keine Auswirkungen auf die gesamte Anwendung und erhöht so die allgemeine Ausfallsicherheit.
Kleinere Codebasen und die Trennung von Belangen machen Wartung und Debugging einfacher zu handhaben.
Aufgrund ihrer kleineren und unabhängigen Natur können einzelne Microservices je nach Bedarf unabhängig skaliert werden, ohne dass die gesamte Anwendung skaliert werden muss.
Jeder Dienst kann anders getestet werden.
Nachteile
company.name=tier3Hub
Wenn wir also den Namen des Unternehmens ändern möchten, müssen wir bei allen Diensten den Namen ändern.
Das Testen einer auf Microservices basierenden Anwendung kann aufgrund der gegenseitigen Abhängigkeiten und Interaktionen zwischen Diensten komplexer sein.
Jeder Dienst verarbeitet danach eine bestimmte Menge an Anfragen. Wenn wir mehr Anfragen senden, als der Dienst ausfällt, benötigen wir mehrere Instanzen dieses Dienstes. Um die Anfrage an verschiedene Instanzen des Dienstes weiterzuleiten, benötigen wir einen Lastenausgleich Die von den Clients und Routen in verschiedenen Instanzen kommenden Anforderungen wurden ausgeglichen. aber den Load-Balancer in Java zu schreiben ist schwierig.
Java fournit le framework appelé Spring-Boot pour développer les API Rest et Spring-Boot fournit de nombreuses fonctionnalités telles que la configuration automatique, le serveur intégré, si nous développons le service, il est donc nécessaire de déployer ce service sur le serveur et Spring. -Boot fournit le serveur Tomcat, donc chaque service s'exécute sur différents ports de Tomcat. par exemple, le service des employés s'exécute sur le port 8080, le service des cours s'exécute sur le port 8081 et chaque service ayant son propre serveur.
avec l'aide de Spring-Boot fournit des fonctionnalités pour un développement rapide, moins de configuration, une application Production Ready et un projet de stater
et il existe un projet sous Spring Framework appelé Spring Cloud qui fournit des microservices de support prêts à l'emploi, Spring Cloud fournit des outils et des techniques communs pour développer rapidement un modèle commun de microservices.
Nous n'avons pas d'architecture fixe pour les microservices, les développeurs personnalisent l'architecture des microservices en fonction des exigences de leur projet. La plupart des projets utiliseront les composants ci-dessous dans l'architecture des microservices.
1) Registre de services (serveur Eureka)
2) Services (API REST)
3) Communication interservices (FeginClient)
4) Passerelle API
5) Serveur d'administration
6) Zipkin
Les microservices en Java ont transformé notre façon d'aborder le développement de logiciels, apportant un nouveau niveau de flexibilité, d'évolutivité et de résilience. Le riche écosystème de Java, combiné à des frameworks comme Spring Boot et Micronaut, en fait un excellent choix pour créer des microservices capables de répondre aux exigences des applications modernes.
En explorant cette architecture, nous comprenons clairement pourquoi les microservices ont gagné en popularité par rapport aux applications monolithiques traditionnelles. Ils offrent modularité et indépendance, permettant aux équipes de développer, déployer et faire évoluer les services individuellement. Ceci est particulièrement précieux dans un monde où les fonctionnalités cloud natives deviennent de plus en plus la norme. Cependant, le parcours révèle également des défis tels que garantir la cohérence des données, gérer la communication interservices et maintenir une sécurité robuste entre les services.
Rester à jour avec les dernières avancées en matière d'outils et de pratiques est crucial pour les développeurs Java travaillant avec des microservices. Le paysage est en constante évolution et ceux qui s’adapteront seront les mieux placés pour exploiter tout le potentiel de cette architecture. L'avenir des microservices en Java semble prometteur, avec des améliorations continues des frameworks et des outils, soutenues par une communauté croissante de développeurs désireux de partager leurs connaissances et leur expérience.
Adopter les microservices en Java signifie ouvrir la porte à la création d'applications plus résilientes, évolutives et maintenables. En suivant les meilleures pratiques et en restant engagés dans l'apprentissage continu, les développeurs peuvent débloquer de nouvelles possibilités en matière de développement de logiciels, conduisant à des solutions plus innovantes et efficaces.
Das obige ist der detaillierte Inhalt vonErstellen skalierbarer Microservices mit Java Spring Boot: Best Practices und Techniken Teil -1. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!