微服务
微服务架构(MSA)的基础是将单个应用程序开发为一组小型独立服务,这些独立服务在自己的进程中运行,独立开发和部署
这些服务使用轻量级 API 通过明确定义的接口进行通信。这些服务是围绕业务功能构建的,每项服务执行一项功能。由于它们是独立运行的,因此可以针对各项服务进行更新、部署和扩展,以满足对应用程序特定功能的需求。
SpringCloud Alibaba微服务解决方案
Spring Cloud Alibaba 是Spring Cloud的一个子项目,致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
构建SpringCloud 聚合项目并进行环境初始化
工程结构
GitCGB2105IVProjects (工作区/空项目)
├── 01-sca //(微服务父工程)
├── sca-provider //服务提供方法
├── sca-consumer //服务消费方法
├── sca-gateway //网关服务
父工程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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.3.2.RELEASE</version>
</parent>
-->
<groupId>com.cy</groupId>
<artifactId>01-sca</artifactId>
<!--创建父工程的子工程时,父工程的打包方式会自动变为pom方式-->
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<!--创建子工程时会自动将子工程的名字放到modules 若删除子工程文件时,要手动删除-->
<modules>
<module>sca-provider</module>
<module>sca-consumer</module>
<module>sca-gateway</module>
</modules>
<!--properties中定义一些属性元素-->
<properties>
<spring.boot.version>2.3.2.RELEASE</spring.boot.version>
</properties>
<!--maven的父工程为一个pom工程,
此工程主要负责依赖版本及部分基础依赖的管理-->
<dependencyManagement>
<dependencies>
<!--Spring Boot 依赖(此依赖中定义了springboot工程核心依赖的版本)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!--Spring Cloud 依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR9</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!--Spring Cloud Alibaba依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<!--dependencies元素中定义子工程中都需要的依赖-->
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!--provided表示只在编译阶段有效运行阶段无效-->
<scope>provided</scope>
</dependency>
</dependencies>
</project>