深入浅出SpringCloud原理及实战「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析
Posted 洛神灬殇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入浅出SpringCloud原理及实战「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析相关的知识,希望对你有一定的参考价值。
前提介绍
SpringCloud-Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud编程模型轻松使用这些组件来开发分布式应用服务。
依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。
此外,阿里云同时还提供了 Spring Cloud Alibaba 企业版 微服务解决方案,包括无侵入服务治理(全链路灰度,无损上下线,离群实例摘除等),企业级 Nacos 注册配置中心和企业级云原生网关等众多产品。
SpringCloud-Alibaba的开源服务
- Nacos Config(分布式配置中心)
- Nacos Discovery(分布式注册中心)
- Sentinel(熔断限流器)
- RocketMQ(消息队列)
- Seata(分布式事务)
Spring Cloud Alibaba从开源建设以来,受到了很多社区同学的关注。社区的每一个 issue ,每一个 PR,都是对整个项目的帮助,都在为建设更好用的 Spring Cloud添砖加瓦。
SpringCloud-Alibaba版本说明
SpringBoot+SpringCloud+SpringCloud-Alibaba对的版本关系
由于Spring Boot 2.4+和以下版本之间变化较大,目前企业级客户老项目相关Spring Boot版本仍停留在SpringBoot2.4以下,为了同时满足存量用户和新用户不同需求,社区以SpringBoot 2.4 为分界线,同时维护 2.2.x 和 2021.x 两个分支迭代。 为了规避相关构建过程中的依赖冲突问题,我们建议可以通过云原生应用脚手架进行项目创建。
2021.x 分支的版本关系
适配SpringBoot 2.4,Spring Cloud2021.x版本及以上的Spring Cloud Alibaba版本按从新到旧排列如下表(最新版本用 * 标记)
注意,该分支 Spring Cloud Alibaba版本命名方式进行了调整,未来将对应Spring Cloud版本,前三位为Spring Cloud版本,最后一位为扩展版本,比如适配 Spring Cloud 2021.0.1 版本对应的Spring Cloud Alibaba第一个版本为:2021.0.1.0,第个二版本为:2021.0.1.1,依此类推)
2.2.x 分支
适配 Spring Boot 为 2.4,Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用 * 标记):
组件版本关系
每个 Spring Cloud Alibaba 版本及其自身所适配的各组件对应版本如下表所示(注意,Spring Cloud Dubbo 从 2021.0.1.0 起已被移除出主干,不再随主干演进):
使用Alibaba云原生脚手架搭建SpringCloud-Alibaba框架
使用对应的SpringCloud-Alibaba脚手架进行搭建框架的方案和案例实战,接下来会进行分析说明,在讨论如何搭建之前,我们需要分析一下SpringBoot、SpringCloud和SpringCloud-Alibaba的版本关系对应关系,否则你会很难受,无法正常启动和实现你所想要实现的功能效果。
访问我们的云原生脚手架
项目构建方式
首先需要选择项目构建方式,对于我们常用的构建方式主要有Maven和Gradle中两种类型
- Maven Project:
- 官方仓库:https://mvnrepository.com
- 下载地址:https://maven.apache.org/download.cgi
- 选择对应的版本安装包即可
- 选择对应的版本安装包即可
- Gradle Project
- 官方网站:https://gradle.org/
- 下载地址:https://gradle.org/releases/
- 选择对应的版本安装包即可
- 选择对应的版本安装包即可
开发语言
- Java:主要作为我们首选开发语言
- Kotlin
- Groovy
Spring Boot版本
项目基本信息
- Group:项目分组:需要进行填写项目的包名根目录,一般为域名反向
- Artifact:项目名称:需要进行填写相关的项目名称。
- version:项目版本:版本号。
选择高级选项
- 项目名称:demo,主要设置maven项目的根目录
- 项目描述:Demo project for Spring Boot,设置项目信息描述介绍
- 项目基础包:com.example.demo
- 打包方式:Jar/War
- Java版本:11/8
应用架构
-
单模块:属于最简单的架构案例
-
MVC架构:采用SpringMVC框架实现web服务,可以选择一些服务组件案例,作为我们项目参考
- Jackso案例
- Thymeleaf案例
- Mybatis案例
- Web服务案例(Controller控制器)
-
分层架构:主要指的是前后端分离的架构案例,所以不会有对应的Thymeleaf案例了。
组件依赖
- Alibaba Cloud:主要用于阿里云的组件服务
- Spring Cloud Alibaba
其他组件可以自行选择即可
- 开发工具
- Web
- 模板引擎
- 安全
- 关系型数据库
- 非关系型数据库
- 消息
- 输入/输出
- Ops
- 观测
- 等等…
点击浏览代码
点击下载代码
这样就完成了整体的架构搭建代码
以上是关于深入浅出SpringCloud原理及实战「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析的主要内容,如果未能解决你的问题,请参考以下文章
深入浅出SpringCloud原理及实战「Netflix系列之Fegin」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(下)
深入浅出SpringCloud原理及实战「Netflix系列之Hystrix」针对于限流熔断组件Hystrix的超时机制的原理和实现分析
深入浅出SpringCloud原理及实战「Netflix系列之Hystrix」针对于限流熔断组件Hystrix的基本参数和实现原理介绍分析
深入浅出Dubbo3原理及实战「SpringCloud-Alibaba系列」基于Nacos作为注册中心进行发布SpringCloud-alibaba生态的RPC接口实战
深入浅出SpringCloud原理及实战「Netflix系列之Ribbon」针对于负载均衡组件Ribbon的基本参数和实现原理介绍分析
深入浅出SpringCloud原理及实战「SpringCloud-Gateway系列」微服务API网关服务的Gateway全流程开发实践指南(入门篇)