脚本宝典收集整理的这篇文章主要介绍了Spring Cloud Alibaba 介绍及工程准备,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
SPRingCloud Alibaba是阿里巴巴集团开源的一套微服务架构解决方案。@H_406_3@
微服务架构是为了更好的分布式系统开发,将一个应用拆分成多个子应用,每一个服务都是可以独立运行的子工程。其中涵盖了非常多的内容,包括:服务治理、配置管理、限流降级以及对阿里开源生态(Dubbo、RocketMQ等)支持的N多组件。
SpringCloud Alibaba相关组件
主要功能
Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Dubbo Version | Seata Version |
---|---|---|---|---|---|
2.2.6.RELEASE | 1.8.1 | 1.4.2 | 4.4.0 | 2.7.8 | 1.3.0 |
2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE | 1.8.0 | 1.4.1 | 4.4.0 | 2.7.8 | 1.3.0 |
2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE | 1.8.0 | 1.3.3 | 4.4.0 | 2.7.8 | 1.3.0 |
2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE | 1.7.1 | 1.2.1 | 4.4.0 | 2.7.6 | 1.2.0 |
2.2.0.RELEASE | 1.7.1 | 1.1.4 | 4.4.0 | 2.7.4.1 | 1.0.0 |
2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE | 1.7.0 | 1.1.4 | 4.4.0 | 2.7.3 | 0.9.0 |
2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE | 1.6.3 | 1.1.1 | 4.4.0 | 2.7.3 | 0.7.1 |
Spring Cloud Version | Spring Cloud Alibaba Version | Spring Boot Version |
---|---|---|
Spring Cloud 2020.0.1 | 2021.1 | 2.4.2 |
Spring Cloud Hoxton.SR9 | 2.2.6.RELEASE | 2.3.2.RELEASE |
Spring Cloud Greenwich.SR6 | 2.1.4.RELEASE | 2.1.13.RELEASE |
Spring Cloud Hoxton.SR3 | 2.2.1.RELEASE | 2.2.5.RELEASE |
Spring Cloud Hoxton.RELEASE | 2.2.0.RELEASE | 2.2.X.RELEASE |
Spring Cloud Greenwich | 2.1.2.RELEASE | 2.1.X.RELEASE |
Spring Cloud Finchley | 2.0.4.RELEASE(停止维护,建议升级) | 2.0.X.RELEASE |
Spring Cloud Edgware | 1.5.1.RELEASE(停止维护,建议升级) | 1.5.X.RELEASE |
官方版本关系说明文档: https://gIThub.COM/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
创建该pom工程主要用于管理依赖使用的版本。
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>
<groupId>com.gitee</groupId>
<artifactId>spring-cloud-alibaba-version-parent</artifactId>
<version>0.0.1</version>
<properties>
<!-- 编码与JDK版本 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- SpringBoot SpringCloud Spring Cloud Alibaba 三件套 -->
<spring.boot.version>2.5.2</spring.boot.version>
<spring.cloud.version>2020.0.3</spring.cloud.version>
<spring.cloud.alibaba.version>2021.1</spring.cloud.alibaba.version>
<!-- JSON 转换依赖 -->
<fastjson.version>1.2.78</fastjson.version>
<!-- 工具包 -->
<hutool.version>5.7.3</hutool.version>
<mapstruct.version>1.2.0.Final</mapstruct.version>
<lombok.version>1.18.20</lombok.version>
<!-- Swagger -->
<springfox.boot.starter.version>3.0.0</springfox.boot.starter.version>
</properties>
<!-- 开发人员 -->
<developers>
<developer>
<name>wuwentao</name>
<email>lovelyWu98k@gmail.com</email>
</developer>
</developers>
<!-- 引入依赖管理 -->
<dependencyManagement>
<dependencies>
<!-- spring boot 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- spring cloud 依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- spring cloud alibaba 依赖 -->
<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>
<!-- 构建方式 -->
<build>
<finalName>${project.name}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<!-- 打包插件管理 -->
<pluginManagement>
<plugins>
<!-- Spring Boot 打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<finalName>${project.build.finalName}</finalName>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
创建该jar工程主要用于存放业务服务公用的内容,如统一响应实体,统一异常处理等等。
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>
<groupId>com.gitee</groupId>
<artifactId>spring-cloud-alibaba-version-parent</artifactId>
<version>0.0.1</version>
</parent>
<groupId>com.gitee</groupId>
<artifactId>spring-cloud-alibaba-common</artifactId>
<version>0.0.1</version>
<dependencies>
<!-- 工具依赖 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<!-- fastjson 序列化 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<!-- 引用Swagger类 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${springfox.boot.starter.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
创建该类用于Controller处理完成后返回给前端或调用放的返回值对象。
Response.java
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 请求统一响应实体类
*
* @param <T> 返回结果类型
* @author wentao.wu
*/
@Data
@ApiModel(value = "请求响应实体类")
public class Response<T> {
@ApiModelProperty(value = "请求成功响应编码")
private String code;
@ApiModelProperty(value = "请求成功响应消息")
private String msg;
@ApiModelProperty(value = "请求失败响应编码")
private String errorCode;
@ApiModelProperty(value = "请求失败响应消息")
private String errorMsg;
@ApiModelProperty(value = "返回结果")
private T result;
}
创建该类主要用户识别,发生该异常是由业务服务抛出,后期可以做全局异常统一处理。
ServiceException.java
import lombok.Getter;
/**
* 服务业务运行时异常
*
* @author wentao.wu
*/
@Getter
public class ServiceException extends RuntimeException {
public ServiceException(String errorCode, String errorMsg) {
super();
this.errorCode = errorCode;
this.errorMsg = errorMsg;
}
/**
* 异常编码
*/
private String errorCode;
/**
* 异常信息
*/
private String errorMsg;
}
后期所有工程都依赖上方两个工程。
标题 | 传送门 |
---|---|
Nacos Server 介绍安装部署篇 | 未更新 |
Sentinle Server 介绍安装部署篇 | 未更新 |
Seata Server 介绍安装部署篇 | 未更新 |
RocketMQ Server 介绍安装部署篇 | 未更新 |
SkyWalking 介绍安装部署篇 | 未更新 |
Spring Cloud Alibaba 介绍及工程准备 | 前往 |
Spring Cloud Alibaba 使用Nacos作为服务注册中心 | 前往 |
Spring Cloud Alibaba 使用Nacos作为配置管理中心 | 前往 |
Spring Cloud Alibaba 使用RestTemplate进行服务消费 | 前往 |
Spring Cloud Alibaba 使用Feign进行服务消费 | 前往 |
Spring Cloud Alibaba 使用Seata解决分布式事务 | 前往 |
Spring Cloud Alibaba 使用Gateway作为服务网关 | 前往 |
Spring Cloud Alibaba 使用Sentinel进行熔断&降级 | 前往 |
Spring Cloud Alibaba 使用SkyWalking进行分布式链路跟踪 | 前往 |
Spring Cloud Alibaba 使用RocketMQ进行消息生产 | 前往 |
Spring Cloud Alibaba 使用RocketMQ进行消息消费 | 前往 |
持续更新中.... | 持续更新 |
gitee: https://gitee.com/SimpleWu/spring-cloud-alibaba-example.git cnblogs: https://www.cnbLOGs.com/SimpleWu
以上是脚本宝典为你收集整理的Spring Cloud Alibaba 介绍及工程准备全部内容,希望文章能够帮你解决Spring Cloud Alibaba 介绍及工程准备所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。