Heim> Java> javaLernprogramm> Hauptteil

Erstellen skalierbarer Microservices mit Java Spring Boot: Best Practices und Techniken Teil -1

PHPz
Freigeben: 2024-08-17 18:51:32
Original
640 Leute haben es durchsucht

Monolith-Architektur

  • 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.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

Um die Probleme der monolithischen Architektur zu überwinden, kamen Microservices-Architekturen auf den Markt

Microservices-Architektur

  • 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.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

Vorteile

  • Technologieunabhängigkeit (Wir können Backend-APIs mit mehreren Technologien wie Python, Go usw. entwickeln)
  • 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

  • Wenn wir die Änderungen in einer Dienstkonfiguration durchführen möchten, müssen wir die Änderungen an jeder Dienstkonfiguration durchführen. Beispielsweise gibt es eine gemeinsame Eigenschaft, die in jeder application.properties-Datei in allen meinen Projekten vorhanden ist.
company.name=tier3Hub
Nach dem Login kopieren

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.

Pourquoi Java pour les microservices

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.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

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.

Spring Cloud se concentre sur la fourniture d'une bonne expérience prête à l'emploi pour les cas d'utilisation typiques et d'un mécanisme d'extensibilité pour couvrir les autres

  • Configuration distribuée/versionnée
  • Inscription et découverte du service
  • Routage
  • Appels de service à service
  • Équilibrage de charge
  • Disjoncteurs
  • Messagerie distribuée
  • Microservices (tâches) de courte durée
  • Tests contractuels axés sur les consommateurs et les producteurs.

Architecture des 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

Conclusion

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!