Maison> Java> javaDidacticiel> le corps du texte

Création de microservices évolutifs avec Java Spring Boot : meilleures pratiques et techniques, partie -1

PHPz
Libérer: 2024-08-17 18:51:32
original
676 Les gens l'ont consulté

Architecture monolithique

  • Si nous développons toutes les fonctionnalités dans un seul projet, cela s'appelle une application basée sur l'architecture Monolith.

  • Nous allons empaqueter notre application sous forme de jar/war à déployer sur le serveur.

  • Comme l'application monolithe contient toutes les fonctionnalités, elle deviendra un gros pot/guerre.

Avantages
1) Facile à développer et à gérer.
2) Tout est disponible au même endroit.
3) Configuration requise une seule fois.

Dés-Avantages
1) Difficile à entretenir
2) Point de défaillance unique
3) Si nous effectuons des modifications, le projet complet est redéployé et testé.
4) Le développeur ne connaît peut-être pas des modules entiers, il est donc plus difficile de commencer à résoudre le problème.
5) si un module est trop chargé, nous devons créer plusieurs instances de l'application complète, ce qui prend beaucoup de place car chaque module est étroitement couplé les uns aux autres.

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

Pour surmonter les problèmes du monolithique, l'architecture des microservices est arrivée sur le marché

Architecture des microservices

  • Les microservices ne sont pas un langage, un framework ou une API de programmation. Les microservices sont un modèle de conception architecturale.

  • Microservices proposant de développer des fonctionnalités applicatives avec un couplage faible.

  • Dans l'architecture Microservices, nous ne développons pas toutes les fonctionnalités en un seul projet. Nous diviserons les fonctionnalités du projet en plusieurs API REST.

  • Les microservices ne sont pas liés uniquement à Java. Tout projet spécifique à un langage de programmation peut utiliser l'architecture de microservices.

Les microservices sont une approche selon laquelle nous développons de petits services, chaque service est exécuté sur son propre conteneur/processus/serveur, les services doivent être légers et déployables indépendamment. Cela permet un développement, un déploiement et une évolutivité plus rapides.

Comme vous pouvez le voir, le module employé, le module client, le module adresse et le module cours de l'application monolithe sont désormais convertis en petit petit service donc les voici comme le service employé, le service client, le service adresse et le service cours. et dans les applications monolithiques, il existe une seule base de données, mais dans les applications de microservices, chaque service a sa propre base de données. et ils dépendent désormais les uns des autres. et chaque service communique entre eux, lancez les autres appels.

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

Avantages

  • Indépendance technologique (Nous pouvons développer des API backend avec plusieurs technologies comme Python, Go, etc.)
  • Indépendance des bases de données.

  • Chaque service est indépendant les uns des autres (Couplage lâche) afin que nous puissions déployer chaque service indépendamment.

  • si vous effectuez des modifications dans un service, il n'est pas nécessaire de déployer tout le service, un seul service est également déployé seul.

  • Dev travaillant sur un seul service ne nécessite pas la connaissance de l'ensemble de l'application.

  • La défaillance d'un seul microservice n'a pas d'impact sur l'ensemble de l'application, ce qui améliore la résilience globale.

  • Des bases de code plus petites et la séparation des problèmes rendent la maintenance et le débogage plus gérables.

  • En raison de leur nature plus petite et indépendante, les microservices individuels peuvent être mis à l'échelle indépendamment en fonction de la demande, sans avoir à faire évoluer l'ensemble de l'application.

  • Chaque service peut être testé différemment.

Inconvénients

  • si nous voulons effectuer les modifications dans une configuration de service, nous devons effectuer les modifications sur chaque configuration de service, par exemple, il existe une propriété commune qui existe dans chaque fichier application.properties de tous mes projets.
company.name=tier3Hub
Copier après la connexion

donc si nous voulons changer le nom de l'entreprise, dans tous les services, nous devons changer le nom.

  • Tester une application basée sur des microservices peut être plus complexe en raison des interdépendances et des interactions entre les services.

  • chaque service gère un certain nombre de demandes spécifiques après cela, si nous envoyons plus de demandes que le service est en panne, nous avons donc besoin de plusieurs instances de ce service et d'acheminer la demande dans différentes instances du service que nous besoin d'un équilibreur de charge qui équilibre la demande provenant des clients et des routes dans différentes instances. mais écrire le Load-Balancer en Java est difficile.

為什麼選擇 Java 來實現微服務

Java提供了Spring-Boot的框架來開發Rest API,Spring-Boot提供了很多功能,例如自動配置、嵌入式伺服器,如果我們要開發服務,那麼需要在伺服器和spring上部署sech服務-Boot 提供tomcat伺服器,因此每個服務都運行在tomcat的不同連接埠上。例如員工服務在連接埠 8080 上運行,課程服務在連接埠 8081 上運行,每個服務都有自己的伺服器。

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

在 spring-Boot 的幫助下,提供了快速開發、更少配置、生產就緒應用程式和狀態器專案的功能

Spring 框架下有一個名為 Spring Cloud 的項目,它提供了現成的支援微服務,Spring Cloud 提供了一些通用的工具和技術來快速開發通用的微服務模式。

Spring Cloud 專注於為典型用例提供良好的開箱即用體驗,並提供可擴展性機制以覆蓋其他用例

  • 分散式/版本化配置
  • 服務註冊和發現
  • 路由
  • 服務間呼叫
  • 負載平衡
  • 斷路器
  • 分散式訊息傳遞
  • 短暫的微服務(任務)
  • 消費者驅動和生產者驅動的合約測試。

微服務架構

我們沒有固定的微服務架構,開發人員根據自己的專案需求客製化微服務架構,大多數專案都會在微服務架構中使用以下元件。

1)服務註冊中心(Eureka Server)

2) 服務(REST API)

3)服務間通訊(FeginClient)

4) API 閘道

5) 管理伺服器

6) 拉鍊

結論

Java 中的微服務改變了我們軟體開發的方式,將靈活性、可擴展性和彈性提升到了一個新的水平。 Java 豐富的生態系統與 Spring Boot、Micronaut 等框架相結合,使其成為建立能夠滿足現代應用程式需求的微服務的絕佳選擇。

隨著我們探索這種架構,微服務比傳統單體應用程式更受歡迎的原因就很清楚了。它們提供模組化和獨立性,允許團隊單獨開發、部署和擴展服務。在雲端原生功能日益成為標準的世界中,這一點尤其有價值。然而,這個過程也暴露了一些挑戰,例如確保資料一致性、管理服務間通訊以及維護跨服務的強大安全性。

及時了解工具和實踐的最新進展對於使用微服務的 Java 開發人員至關重要。環境不斷發展,那些適應的人將最有能力充分利用這種架構的潛力。 Java 微服務的未來看起來充滿希望,框架和工具不斷改進,並得到了越來越多渴望分享知識和經驗的開發人員社群的支持。

在 Java 中採用微服務意味著為創建更具彈性、可擴展性和可維護性的應用程式打開了大門。透過遵循最佳實踐並致力於持續學習,開發人員可以釋放軟體開發的新可能性,從而帶來更創新和高效的解決方案。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!