当前位置: 首页 > news >正文

SpringCloud Alibaba微服务工程搭建

前言

在讲微服务工程的搭建之前,我们先分析下为什么要使用微服务呢?

1、单体应用的痛点

  • 维护困难:代码臃肿,牵一发而动全身。
  • 扩展性差:无法按需扩展特定功能,只能整体扩容。
  • 技术栈僵化:难以引入新技术,升级风险高。
  • 可靠性低:单点故障导致全站瘫痪。
  • 交付慢:团队协作冲突多,发布效率低下
  • 性能瓶颈:集中式架构难以应对高并发。

2、微服务的优势
将原来的单体应用按功能进行拆分,拆分为多个模块,每个模块负责自己的业务功能。每个服务都独立运行,相互不影响。每个服务拥有单一职责,专注于一个业务功能,各个服务之间通过API(HTTP/RPC)、或者消息队列进行交互,每个服务可以独立更新维护、扩展,不影响其他的服务。

Spring Cloud Alibaba 核心组件

1、Nacos——注册中心(服务注册与发现)和配置中心

2、Ribbon——客户端负载均衡器

3、Sentinel——流量控制与熔断降级

5、Spring Cloud Gateway——服务网关

4、Seata——分布式事务

5、Feign——声明式 HTTP 客户端

6、RocketMQ/RabbitMQ——消息队列

在这里插入图片描述

微服务工程搭建

1、搭建父工程
在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/dbdf87d2baf54e239604e16ee5d6a5fc.png
在这里插入图片描述
删除父工程中的src等无关目录
在这里插入图片描述
2、引入相关依赖

<?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 http://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>2.7.18</version><relativePath/></parent><groupId>com.shop</groupId><artifactId>shop-cloud-service</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules></modules><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>2021.0.8</spring-cloud.version><spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version><nacos-client.version>2.2.3</nacos-client.version></properties><!--  总项目, dependencyManagement来管理,其他子项目就可以不用来管理版本了,可以直接引用 --><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
</project>

3、创建子项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一直下一步就好,然后修改pom.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>com.shop</groupId><artifactId>shop-cloud-service</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>shop-order</artifactId><version>0.0.1-SNAPSHOT</version><name>shop-order</name><properties><java.version>1.8</java.version></properties><dependencies><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><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></project>

最后送大家一句话:须知少时凌云志,曾许人间第一流

http://www.dtcms.com/a/136123.html

相关文章:

  • HOW - 企业团队自建 npm 仓库
  • 大模型——理解Crawl4AI 中的爬取请求参数
  • 【数据分享】全球1200多个城市的建筑高度矢量数据(不包括中国/免费获取)
  • Sonatype Nexus Repository Docker部署
  • Windows环境下,Jenkins+Gitee的CICD
  • Servlet简单示例
  • idea报错java: 非法字符: ‘\ufeff‘解决方案
  • 如何在 IntelliJ IDEA 中安装通义灵码 - AI编程助手提升开发效率
  • Python(17)Python字符编码完全指南:从存储原理到乱码终结实战
  • VScode+OpenOCD+HTOS栈回溯在国产mcu芯片上完全调试
  • 十倍开发效率 - IDEA 插件之RestfulBox - API
  • LangGraph中预构件,creat_react_agent的实现流程
  • 解决 Kubernetes 调度器启动报错:缺少 Bind 插件
  • PFDF-SPWM(并联续流-倍频正弦脉宽调制)
  • 尚硅谷-react[1-6集]
  • Vue 3 中 ref和reactive的详细使用场景
  • 使用阿里云创建公司官网(使用wordpress)
  • 菊厂20250416软件机考T2解答(200分)
  • GR00T N1:面向通用类人机器人的开放基础模型
  • Google Cloud最新报告:全球领先企业AI应用案例与智能体落地方向探索
  • 利用Global.asax在ASP.NET Web应用中实现功能
  • 绿盟二面面试题
  • 概念实践极速入门 - 常用的设计模式 - 简单生活例子
  • 在 Redis Lua 脚本中,keyCount 参数的作用是明确区分脚本参数中的 KEYS 和 ARGV,具体关系如下:
  • JNI的使用
  • 华为OD机试真题——硬件产品销售方案(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 设计模式(责任链模式)
  • SyntaxError: Unexpected end of JSON input 内容被截断报错
  • ios接入穿山甲【Swift】
  • 自动驾驶创建场景(just soso)