首页> Java> java教程> 正文

使用 Java Spring Boot 构建可扩展的微服务:最佳实践和技术第 -1 部分

PHPz
发布: 2024-08-17 18:51:32
原创
671 人浏览过

整体架构

  • 如果我们在单个项目中开发所有功能,那么它被称为基于整体架构的应用程序。

  • 我们将把我们的应用程序打包为 jar/war 以部署到服务器中。

  • 由于单体应用程序包含了所有功能,它将成为 fat jar/war。

优点
1) 易于开发和管理。
2)一切都在一处可用。
3)只需配置一次。

缺点
1)维护困难
2)单点故障
3)如果我们进行任何更改,则整个项目将重新部署和测试。
4) 开发人员可能不了解整个模块,因此更难开始修复问题。
5) 如果某个模块的负载太大,我们需要创建完整应用程序的多个实例,这样会占用大量空间,因为每个模块彼此紧密耦合。

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

为了克服单体式的问题,微服务架构应运而生

微服务架构

  • 微服务不是一种编程语言、框架或 API。微服务是一种架构设计模式。

  • 微服务建议以松散耦合的方式开发应用程序功能。

  • 在微服务架构中,我们不会在单个项目中开发所有功能。我们将项目功能划分为多个 REST API。

  • 微服务不仅仅与java有关。任何特定于编程语言的项目都可以使用微服务架构。

微服务是我们开发小型服务的一种方法,每个服务都在自己的容器/进程/服务器上运行,服务应该是轻量级的并且可独立部署。这可以实现更快的开发、部署和可扩展性。

正如你所看到的,单体应用程序的员工模块、客户模块、地址模块和课程模块现在都转换成了小型服务,所以这里它们就像员工服务、客户服务、地址服务和课程服务。在单体应用程序中,使用单个数据库,但在微服务应用程序中,每个服务都有自己的数据库。他们现在相互依赖。每个服务都在相互通信,其余的调用。

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

优点

  • 技术独立(我们可以使用Python、Go等多种技术开发后端API)
  • 数据库独立性。

  • 每个服务都是相互独立的(松散耦合),因此我们可以独立部署每个服务。

  • 如果在任何服务中执行任何更改,则无需部署所有服务,只需部署一个服务即可。

  • 开发一项服务不需要了解整个应用程序。

  • 单个微服务的故障不会影响整个应用,增强整体弹性。

  • 更小的代码库和关注点分离使维护和调试更易于管理。

  • 由于其较小且独立的性质,各个微服务可以根据需求独立扩展,而无需扩展整个应用程序。

  • 每个服务都可以进行不同的测试。

缺点

  • 如果我们想在一个服务配置中执行更改,那么我们需要对每个服务配置执行更改,例如,我所有项目中的每个 application.properties 文件中都存在一个公共属性。
雷雷

所以如果我们想更改公司名称,那么我们需要更改所有服务的名称。

  • 由于服务之间的相互依赖和交互,测试基于微服务的应用程序可能会更加复杂。

  • 每个服务都会处理一定数量的请求,之后如果我们发送的请求多于服务就会关闭,因此我们需要该服务的多个实例,并且为了在服务的不同实例中路由请求,我们需要一个负载均衡器平衡来自客户端的请求和不同实例中的路由。但是用 Java 编写负载均衡器很困难。

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 server et spring-Boot fournissent le serveur Tomcat, de sorte que 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
  • Service d'inscription et découverte
  • 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, il est clair 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é solide 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 s'annonce 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 les portes à 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.

以上是使用 Java Spring Boot 构建可扩展的微服务:最佳实践和技术第 -1 部分的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!