【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析

news/2024/11/29 1:47:55/

前提介绍

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框架

  • 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
  • 观测
  • 等等…

点击浏览代码

点击下载代码

这样就完成了整体的架构搭建代码


http://www.ppmy.cn/news/3357.html

相关文章

31.前端笔记-CSS-CSS3盒子模型和其他特性

1、CSS3盒子模型 原来的CSS盒子设置了border和padding属性,就会撑大盒子。 现在CSS3中可以通过box-sizing来指定盒模型,有两个值: content-box:盒子大小是widthpaddingborderbordr-box:盒子大小就是width,padding和border不会撑…

Kafka极客 - 15 重设消费者位移 Offset

文章目录1. 为什么要重设消费者组位移?2. 重设位移策略3. 消费者 API 方式设置4. 命令行方式设置1. 为什么要重设消费者组位移? 我们知道,Kafka 和传统的消息引擎在设计上是有很大区别的,其中一个比较显著的区别就是,…

Java——红黑树

概念 红黑树也是一种二叉搜索树,但是和avl树不同,它并不是依靠平衡因子来保证树的平衡的,而是通过颜色 红黑树每个节点中会存储颜色,分为红色和黑色,通过红黑树的限制条件,可以保证从根节点出发到叶子节点…

14:30面试,14:38就出来了 ,问的实在是太...

从外包出来,没想到算法死在另一家厂子,自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有…

16【C语言 趣味算法】求车速问题

Contents 一、Review二、New Problem2.1 Problem description and problem analysis2.2 Algorithm design2.3 Defining the framework of the process(确定程序框架)2.4 Full code and results2.5 Question expansion(问题拓展):使用while循环来解决一、Review 15【C语言…

不想写日报、周报,这个报表自动化软件太牛了,仅需三分钟

昨天看到一个哥们发帖说IT部门负责做报表的同事阳了,再加上年底各个业务部门报表需求旺盛,现在他们是忙的饭都吃不上,天天凌晨才能回家。京东的人倒是被解放了,毕竟强东说汇报只能1页ppt。但对于万千其他公司的朋友们来说&#xf…

thinkphp中 Db::query()和Db::name()区别 $db->query($sql); ->相当于访问类里面的方法

Db::query()是原生sql查询。 例如 Db::query(“select * from cmf_user where id9”); Db::name()是thinkphp基于原生sql二次封装的sql查询。 例如Db::name(‘user’)->where(‘id’,9)->find(); db是一个实例化好的数据库类,query是这个类里面的一个方法&am…

Django第二天学习记录

1.对于路由配置的正则化补充(re_path的正则匹配) 对于第一天学习的path转换器过于暴力,对于需要匹配的内容不能很精准的进行转换。为了实现精准的字符串匹配规则,因此引入了re_path(reg,view,namexxx)进行路由规则的精确匹配。 正…