当前位置: 首页> 汽车> 新车 > 重庆100强企业名单_个人网页导航条图片_站长工具seo客户端_willfast优化工具下载

重庆100强企业名单_个人网页导航条图片_站长工具seo客户端_willfast优化工具下载

时间:2025/7/11 10:46:20来源:https://blog.csdn.net/m0_74293254/article/details/142284337 浏览次数: 0次
重庆100强企业名单_个人网页导航条图片_站长工具seo客户端_willfast优化工具下载

使用 Spring Cloud Alibaba 的主要目的是解决单体应用的痛点,并利用微服务架构的优势来构建高扩展性、可靠的分布式系统。

1. 单体应用的痛点

单体应用虽然在小型项目中优势明显,但随着业务复杂性增加,逐渐暴露出许多问题:

  • 代码复杂性:随着功能增长,单体应用代码量增加,导致可读性、可维护性和可扩展性下降。新开发人员需要花费大量时间理解系统。
  • 测试困难:在单体应用中,任何小的更改都可能影响整个系统,导致测试覆盖范围大,测试成本高。
  • 并发能力有限:单体应用运行在一台服务器上,随着访问量的增加,性能瓶颈显现,用户体验下降。
  • 容错性差:如果某一功能模块出现故障,可能导致整个应用系统不可用。

2. 微服务的优势

微服务架构通过将单体应用按业务功能划分为多个独立的小模块(微服务),每个服务都有独立的进程、数据库和部署方式。这种架构的优势包括:

  • 独立部署与扩展:每个微服务可以独立开发、测试、部署,并且根据需要单独扩展,大大提高了灵活性和可扩展性。
  • 容错性提高:微服务之间通过 HTTP RESTful API 或者消息机制进行通信,某个服务的故障不会影响整个系统,可以局部熔断,保障整体可用性。
  • 语言与技术多样性:不同的微服务可以采用不同的编程语言或存储技术,灵活适应业务需求。
  • 易于维护:由于每个微服务的代码规模较小,可维护性更高,新开发人员上手难度降低。

3. Spring Cloud Alibaba 的重要组件

Spring Cloud Alibaba 提供了构建微服务架构的核心组件,帮助开发者应对微服务架构中面临的复杂性。

主要组件包括:

Nacos:

  • 服务注册与发现:Nacos 作为注册中心,负责微服务的动态注册和发现,简化了服务之间的通信。
  • 配置中心:Nacos 提供分布式配置管理,支持动态配置更新,避免了繁琐的手动配置文件修改。

Ribbon:

  • 负载均衡:Ribbon 是客户端负载均衡器,能够在多个服务实例之间分配请求流量,提升服务的可用性和性能。

Feign:

  • 声明式 HTTP 客户端:通过 Feign,可以轻松调用其他微服务的 HTTP 接口,简化远程调用的代码,实现更清晰的代码逻辑。

Sentinel:

  • 限流、降级、熔断:Sentinel 提供了强大的流量控制功能,能实时监控微服务的运行状况,进行限流和熔断,保障系统的稳定性。

Gateway:

  • API 网关:Spring Cloud Gateway 是一个高性能的 API 网关,它通过 WebFlux 编程模式支持路由转发、认证授权、日志监控等功能,集中管理外部请求流量。

Sleuth:

  • 调用链监控:Sleuth 负责微服务间的调用链路追踪,能够在分布式系统中帮助快速定位问题,提供链路级的性能监控。

Seata:

  • 分布式事务解决方案:Seata 提供了跨微服务的分布式事务管理,保证微服务之间的事务一致性,解决了分布式架构中事务管理复杂的问题。

工程搭建

1、搭建父工程

删除掉src目录(父目录不需要)

2、引入相关springcloud依赖

先看下springboot和springcloud、springcloud alibaba 和各个组件之间的版本对应关系:

SpringCloud与SpringBoot的版本的兼容关系

springcloud和springcloud alibaba版本保持一致

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.9</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>cloud</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging> <!-- 这里设置为pom --><name>demo</name><description>demo</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version><spring-cloud.version>2023.0.2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2023.0.1.0</version><type>pom</type></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><!-- 定义子模块 --><modules><module>service1</module><module>service2</module></modules></project>

3、创建子模块

创建子模块service1、service2

子模块service1的xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>cloud</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../pom.xml</relativePath> <!-- 指向父项目的 pom 文件 --></parent><artifactId>service1</artifactId><dependencies><!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2023.0.1.0</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2023.0.1.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies>
</project>

子模块service2的xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>cloud</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../pom.xml</relativePath> <!-- 指向父项目的 pom 文件 --></parent><artifactId>service2</artifactId><dependencies><!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2023.0.1.0</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2023.0.1.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies>
</project>

关键字:重庆100强企业名单_个人网页导航条图片_站长工具seo客户端_willfast优化工具下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: