位置: IT常识 - 正文

Spring Cloud Alibaba全家桶(一)——Spring Cloud Alibaba介绍(springcloud阿里巴巴)

编辑:rootadmin
Spring Cloud Alibaba全家桶(一)——Spring Cloud Alibaba介绍 前言

推荐整理分享Spring Cloud Alibaba全家桶(一)——Spring Cloud Alibaba介绍(springcloud阿里巴巴),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Spring Cloud Alibaba微服务架构实战派,spring cloud alibaba sentinel,springcloud阿里巴巴,springcloudalibaba面试题,springcloudalibaba官网,spring cloud alibaba sentinel,springcloudalibaba组件,springcloudalibaba面试题,内容如对您有帮助,希望把文章链接给更多的朋友!

本文为 Spring Cloud Alibaba介绍 相关知识,下边将对微服务介绍(包括:系统架构演变、微服务架构介绍、常见微服务架构),Spring Cloud Alibaba介绍(包括:Spring Cloud Alibaba 的定位、Spring Cloud 各套实现对比、Spring Cloud Alibaba 生态)及Spring Cloud Alibaba环境搭建等进行详尽介绍~

📌博主主页:小新要变强 的主页 👉Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~ 👉算法刷题路线可参考:算法刷题路线总结与相关资料分享,内含最详尽的算法刷题路线指南及相关资料分享~ 👉Java微服务开源项目可参考:企业级Java微服务开源项目(开源框架,用于学习、毕设、公司项目、私活等,减少开发工作,让您只关注业务!)

目录Spring Cloud Alibaba介绍前言目录一、微服务介绍1️⃣系统架构演变2️⃣微服务架构介绍3️⃣常见微服务架构二、Spring Cloud Alibaba介绍1️⃣Spring Cloud Alibaba 的定位2️⃣Spring Cloud 各套实现对比3️⃣Spring Cloud Alibaba 生态三、Spring Cloud Alibaba环境搭建后记

一、微服务介绍1️⃣系统架构演变

随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。

从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构—>垂直应用架构—>分布 式架构—>SOA架构—>微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。

接下来我们就来了解一下每种系统架构是什么样子的, 以及各有什么优缺点。

🍀(1)单体应用架构

互联网早期,一般的网站应用流量较小,只需一个应用,将所有功能代码都部署在一起就可以,这样可以减少开发、部署和维护的成本。

比如说一个电商系统,里面会包含很多用户管理,商品管理,订单管理,物流管理等等很多模块,我们会把它们做成一个web项目,然后部署到一台tomcat服务器上。

优点:

项目架构简单,小型项目的话, 开发成本低项目部署在一个节点上, 维护方便

缺点:

全部功能集成在一个工程中,对于大型项目来讲不易开发和维护项目模块之间紧密耦合,单点容错率低无法针对不同模块进行针对性优化和水平扩展

🍀(2)垂直应用架构

随着访问量的逐渐增大,单一应用只能依靠增加节点来应对,但是这时候会发现并不是所有的模块都会有比较大的访问 量.

还是以上面的电商为例子, 用户访问量的增加可能影响的只是用户和订单模块, 但是对消息模块的影响就比较小. 那么此时我们希望只多增加几个订单模块, 而不增加消息模块. 此时单体应用就做不到了, 垂直应用就应运而生了.

所谓的垂直应用架构,就是将原来的一个应用拆成互不相干的几个应用,以提升效率。比如我们可以将上面电商的单体 应用拆分成:

电商系统(用户管理 商品管理 订单管理)后台系统(用户管理 订单管理 客户管理)CMS系统(广告管理 营销管理)

这样拆分完毕之后,一旦用户访问量变大,只需要增加电商系统的节点就可以了,而无需增加后台和CMS的节点。

优点:

系统拆分实现了流量分担,解决了并发问题,而且可以针对不同模块进行优化和水扩展一个系统的问题不会影响到其他系统,提高容错率

缺点:

系统之间相互独立, 无法进行相互调用系统之间相互独立, 会有重复的开发任务

🍀(3)分布式架构

当垂直应用越来越多,重复的业务代码就会越来越多。这时候,我们就思考可不可以将重复的代码抽取出来,做成统一的业务层作为独立的服务,然后由前端控制层调用不同的业务层服务呢?

这就产生了新的分布式系统架构。它将把工程拆分成表现层和服务层两个部分,服务层中包含业务逻辑。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。

优点:

抽取公共的功能为服务层,提高代码复用性

缺点:

系统间耦合度变高,调用关系错综复杂,难以维护

🍀(4)SOA架构

在分布式架构下,当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心对集群进行实时管理。此时,用于资源调度和治理中心(SOA Service Oriented Architecture)是关键。

优点:

使用治理中心(ESB\dubbo)解决了服务间调用关系的自动调节

缺点:

服务间会有依赖关系,一旦某个环节出错会影响较大( 服务雪崩 )服务关系复杂,运维、测试部署困难

🍀(5)微服务架构

微服务架构在某种程度上是面向服务的架构SOA继续发展的下一步,它更加强调服务的"彻底拆分"。

微服务架构与SOA架构的不同

微服务架构比 SOA架构粒度会更加精细,让专业的人去做专业的事情(专注),目的提高效率,每个服务于服务之间互不影响,微服务架构中,每个服务必须独立部署,微服务架构更加轻巧,轻量级。

SOA 架构中可能数据库存储会发生共享,微服务强调独每个服务都是单独数据库,保证每个服务于服务之间互不影响。

项目体现特征微服务架构比 SOA 架构更加适合与互联网公司敏捷开发、快速迭代版本,因为粒度非常精细。

优点:

服务原子化拆分,独立打包、部署和升级,保证每个微服务清晰的任务划分,利于扩展微服务之间采用Restful等轻量级http协议相互调用Spring Cloud Alibaba全家桶(一)——Spring Cloud Alibaba介绍(springcloud阿里巴巴)

缺点:

分布式系统开发的技术成本高(容错、分布式事务等)复杂性更高。各个微服务进行分布式独立部署,当进行模块调用的时候,分布式将会变得更加麻烦。2️⃣微服务架构介绍

作者:

Martin Fowler

论文原文:https://martinfowler.com/articles/microservices.html 论文翻译:http://blog.cuicc.com/blog/2015/07/22/microservices

他说微服务其实是一种架构风格,我们在开发一个应用的时候这个应用应该是由一组小型服务组成,每个小型服务都运行在自己的进程内;小服务之间通过HTTP的方式进行互联互通。

微服务架构的常见问题

一旦采用微服务系统架构,就势必会遇到这样几个问题:

这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除]) nacos这么多小服务,他们之间如何通讯?(restful rpc dubbo feign) httpclient(“url”,参数), springBoot restTemplate(“url”,参数) , feign这么多小服务,客户端怎么访问他们?(网关) gateway这么多小服务,一旦出现问题了,应该如何自处理?(容错) sentinel这么多小服务,一旦出现问题了,应该如何排错? (链路追踪) skywalking

对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们。

3️⃣常见微服务架构

🍀(1)dubbo: zookeeper +dubbo + SpringMVC/SpringBoot

配套 通信方式:rpc注册中心:zookeeper / redis配置中心:diamond

🍀(2)SpringCloud:全家桶+轻松嵌入第三方组件(Netflix)

配套 通信方式:http restful注册中心:eruka / consul配置中心:config断路器:hystrix网关:zuul分布式追踪系统:sleuth + zipkin

🍀(3)SpringCloud Alibaba

Spring Cloud 以微服务为核心的分布式系统构建标准

“分布式系统中的常见模式”给了 Spring Cloud 一个清晰的定位,即“模式”。也就是说 Spring Cloud 是针对分布式系统开发所做的通用抽象,是标准模式的实现。这个定义非常抽象,看完之后并不能知道 Spring Cloud 具体包含什么内容。再来看一下 Spring 官方给出的一个 High Light 的架构图,就可以对这套模式有更清晰的认识:

可以看到这个图中间就是各个 Microservice,也就是我们的这个微服务的实现,周边周围的话就是去围绕这个微服务来去做各种辅助的信息事情。例如分布式追踪、服务注册、配置服务等,都绕微服务运行时所依赖的必不可少的的支持性功能。我们可以得出这样一个结论:Spring Cloud 是以微服务为核心的分布式系统的一个构建标准。

二、Spring Cloud Alibaba介绍

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发微服务架构的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发微服务架构。

依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。

根据 Jakarta 2019 年的调研报告,Spring Boot 拥有非常高的占比。熟悉 Java 语言的同学,应该对 Spring 框架都不会陌生。其倡导的依赖倒置、面向切面编程等特性已经形成了 Java 语言的事实标准,几乎所有三方框架都会提供对 Spring 框架的支持。

1️⃣Spring Cloud Alibaba 的定位

既然说 Spring Cloud 是标准,那么自然少不了针对标准的实现。这里,为大家介绍下 Spring Cloud Alibaba 这套实现。先给出下面这张图帮助大家理解 Spring Cloud Alibaba 的定位:

这里给大家这么一个公式,这个叫做:“3 加 2”。

3 指的就是图中深色的部分,其实它就是 Spring Cloud 标准,一共有 3 层。中间颜色最深的部分就是及整个微服务最核心的内容,包括了“ RPC调用”以及“服务注册与发现”。第二层,也就是围绕着核心的这一圈,是一些辅助微服务更好的工作功能,包括了负载均衡、路由、网关、断路器,还有就是追踪等等这些内容。再外层的话,主要是一些分布式云环境里通用能力。

2 指的就是上图中最外面这一圈。这一部分就是这个我们 Spring Cloud Alibaba 的一个定义,它其实包含两个部分的内容:右上部分是对于 Spring Cloud 标准的实现。例如,我们通过 Dubbo 实现了 RPC 调用功能,通过 Nacos 实现了“服务注册与发现”、“分布式配置”,通过 Sentinel 实现了断路器等等,这里就不一一列举了。

左下部分是我们 Spring Cloud Alibaba 对阿里云各种服务的集成。可能很多小伙伴会有这样的一个问题:为什么要加上这一部分呢?此时回头审视一下 Spring Cloud ,它仅仅是一个微服务的一个框架。但是在实际生产过程中,单独使用微服务框架其实并不足以支撑我们去构建一个完整的系统。所以这部分是用阿里帮助开发者完成微服务以外的云产品集成的功能。

这里可能会很多小伙伴会有这么一个担心:是不是使用了 Spring Cloud Alibaba,就会被阿里云平台绑定呢?这是不会的。为什么这么说呢?如上面说的,“3 加 2”中的 2 是被分为两个部分的。其中对 Spring Cloud 的实现是完全独立的,开发者可以只是用这部分实现运行在任何云平台中。当然,另一部分,由于天然是对阿里云服务的集成,这部分是和平台相关的。这里给开发者充分的自由,选择只是用其中的部分还是全部产品。当然,我们也非常欢迎开发者选择使用阿里云的全套服务,我们也会尽量保证使用整套产品时的连贯性与开发的便利性。

2️⃣Spring Cloud 各套实现对比

Spring Cloud 作为一套标准,它的实现肯定不止一套,那么各套实现都有什么区别呢?我们来一起看一下下面这张图:

可以发现 Spring Cloud Alibaba 是所有的实现方案中功能最齐全的。尤其是在 Netflix 停止更新了以后,Spring Cloud Alibaba 依然在持续更新和迭代。

从 18 年 7 月份 Spring Cloud Alibaba 正式提交代码开始,就得到了大家广泛的关注。截止今天,Spring Cloud Alibaba 一共获得了超过了 1.5 万的 star 数,已经的领先于所有其他实现的总和。

3️⃣Spring Cloud Alibaba 生态

可以看到除了围绕着 Spring Cloud 的标准实现以外,还有包括的数据、资源、消息、缓存等各种类型的服务。在不同类型的服务下,也有很多具体的产品可供用户选择。

这里罗列典型而非全部产品。更多的内容,可以参考阿里云官网。

三、Spring Cloud Alibaba环境搭建

SpringCloud Alibaba 依赖 Java 环境来运行。还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

64 bit JDK 1.8+;下载 & 配置。 1.8.0_131Maven 3.2.x+;下载 & 配置。 3.6.1

(1)基于SpringBoot的父maven项目

(2)创建2个服务(订单服务和库存服务)

版本说明:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

Spring Cloud Alibaba:2.2.5.RELEASESpring Boot :2.3.2.RELEASESpring Cloud:Hoxton.SR8

父pom如下:

<?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>org.springframework.boot</groupId><artifactId>spring‐boot‐starter‐parent</artifactId><version>2.3.2.RELEASE</version><relativePath/> <!‐‐ lookup parent from repository ‐‐></parent><groupId>com.tuling.mall</groupId><artifactId>vip‐spring‐cloud‐alibaba</artifactId><version>0.0.1‐SNAPSHOT</version><name>vip‐spring‐cloud‐alibaba</name><packaging>pom</packaging><description>Demo project for Spring Cloud Alibaba</description><properties><java.version>1.8</java.version><spring‐cloud.version>Hoxton.SR8</spring‐cloud.version><spring‐cloud‐alibaba.version>2.2.5.RELEASE</spring‐cloud‐alibaba.version></properties><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>后记

👉Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~ 👉算法刷题路线可参考:算法刷题路线总结与相关资料分享,内含最详尽的算法刷题路线指南及相关资料分享~

本文链接地址:https://www.jiuchutong.com/zhishi/300060.html 转载请保留说明!

上一篇:手把手教你用vue + node 作后端连接数据库(手把手教你用荣耀手机)

下一篇:接口的多继承多实现(接口多继承的写法)

  • 2021年支付宝怎么交医保缴费(2021年支付宝怎么买福利彩票)

    2021年支付宝怎么交医保缴费(2021年支付宝怎么买福利彩票)

  • 苹果13怎么设置微信加密(苹果13怎么设置壁纸和锁屏)

    苹果13怎么设置微信加密(苹果13怎么设置壁纸和锁屏)

  • 抖音七天无理由退货运费谁出?(抖音七天无理由退货规则)

    抖音七天无理由退货运费谁出?(抖音七天无理由退货规则)

  • 华为p40耳机如何插(华为p40耳机如何控制暂停)

    华为p40耳机如何插(华为p40耳机如何控制暂停)

  • 如何去掉ppt的只读状态(如何去掉ppt上的)

    如何去掉ppt的只读状态(如何去掉ppt上的)

  • 华为手机显示圆圈怎么去掉(华为手机显示圆圈里面有箭头)

    华为手机显示圆圈怎么去掉(华为手机显示圆圈里面有箭头)

  • 华为怎么把联系人从黑名单里拉出来(华为怎么把联系人存到sim卡)

    华为怎么把联系人从黑名单里拉出来(华为怎么把联系人存到sim卡)

  • 苹果电脑风扇一直响是什么原因啊(苹果电脑风扇一直响)

    苹果电脑风扇一直响是什么原因啊(苹果电脑风扇一直响)

  • 华为p30为什么声音突然小了(华为p30为什么声音变小了)

    华为p30为什么声音突然小了(华为p30为什么声音变小了)

  • 滴滴接单后导航不动(滴滴接单后导航不显示)

    滴滴接单后导航不动(滴滴接单后导航不显示)

  • 淘宝交易待结算冻结原因(淘宝交易待结算资金冻结是什么意思)

    淘宝交易待结算冻结原因(淘宝交易待结算资金冻结是什么意思)

  • 苹果鼠标充电会亮灯吗(苹果鼠标充电会震动吗)

    苹果鼠标充电会亮灯吗(苹果鼠标充电会震动吗)

  • 怎样才能把抖音拉黑人打开(怎样才能把抖音上的字去掉)

    怎样才能把抖音拉黑人打开(怎样才能把抖音上的字去掉)

  • 苹果支付无法完成购买(苹果支付无法完善信息)

    苹果支付无法完成购买(苹果支付无法完善信息)

  • 正在注销关不了机(正在注销关不了机怎么办 windows7)

    正在注销关不了机(正在注销关不了机怎么办 windows7)

  • 什么叫对方账号异常(什么叫对方账号为新加好友)

    什么叫对方账号异常(什么叫对方账号为新加好友)

  • 京东无理由退货条件(京东无理由退货运费谁承担)

    京东无理由退货条件(京东无理由退货运费谁承担)

  • 笔记本上有麦克风吗(笔记本上有麦克风插孔吗)

    笔记本上有麦克风吗(笔记本上有麦克风插孔吗)

  • QQ随心贴怎么关(qq随心贴怎么关闭最新版)

    QQ随心贴怎么关(qq随心贴怎么关闭最新版)

  • 为什么有的朋友圈要点进去才能看到(为什么有的朋友圈刷不到但是点进去都可以看)

    为什么有的朋友圈要点进去才能看到(为什么有的朋友圈刷不到但是点进去都可以看)

  • 陌陌为什么关注不了人(陌陌为什么关注了然后又没有关注)

    陌陌为什么关注不了人(陌陌为什么关注了然后又没有关注)

  • 苹果11pro max录屏在哪里(苹果11pro max录屏没有声音)

    苹果11pro max录屏在哪里(苹果11pro max录屏没有声音)

  • iphone无线耳机改名字(苹果耳机改蓝牙教程)

    iphone无线耳机改名字(苹果耳机改蓝牙教程)

  • vivo广告怎么关闭(vivo取消广告)

    vivo广告怎么关闭(vivo取消广告)

  • 花生日记怎么解除支付宝(花生日日记是怎么操作的)

    花生日记怎么解除支付宝(花生日日记是怎么操作的)

  • Linux常用的磁盘管理及文件目录管理命令总结(常见的linux系统磁盘)

    Linux常用的磁盘管理及文件目录管理命令总结(常见的linux系统磁盘)

  • Win10系统键盘灵敏度设置方法(win10电脑键盘灵敏度怎么调)

    Win10系统键盘灵敏度设置方法(win10电脑键盘灵敏度怎么调)

  • 注册资本印花税减半征收政策
  • 房地产耕地占用税实施细则
  • 公司借款受托支付是什么
  • 股东借款怎么转为利润分配
  • 小规模纳税人变成一般纳税人之前的发票变更
  • 对公走账是什么意思
  • 库存商品进价成本
  • 筹建期间有收入怎么办
  • 机票报销需要什么单据
  • 注册资本变更增加意味着什么
  • 施工企业营改增税费有哪些
  • 租赁合同印花税税率2023
  • 内部退养个税计算方式
  • 加计扣除两种情况
  • 进口付汇核销流程
  • 税金计提多了怎么办
  • 购入商品入库时发现实收物多余应收数计入什么科目
  • 净资产收益率怎么求
  • 发票验证查询系统官网入口
  • 收到减免退税费是政府补助怎么记账?
  • 购置税和购车税一样吗
  • 专项应付款会计科目代码
  • 企业发放贷款怎么做分录
  • 坏账准备转回影响应交所得税吗
  • 应收账款无法收回确认为坏账会计分录
  • php存储过程是什么
  • 企业补充养老保险
  • 公司购买办公用房可以抵税吗
  • 公交车停车场收费吗
  • php封装数据库操作
  • 固定资产清理科目余额结转哪里
  • php接收ajax请求
  • SE注意力机制加在什么位置
  • chrome os安装到u盘
  • 公司可以不再提取法定公积金
  • web用户管理系统报告
  • 视觉机械臂操作视频
  • 园林绿化工程公司排名
  • 处理二手物品要交增值税吗
  • 土地增值税的相关问题
  • 土地补偿款会议纪要
  • 数据类型所占的字节
  • 收到小微企业退税怎么做账
  • access2000是什么
  • c#构造函数
  • 未达起征点增值税申报表怎么填
  • 摊销期在一年以内房租的账务处理
  • acca中ebq等于
  • 增值税税收滞纳金比例
  • 公司用现金支付货款
  • 分期收款发出商品一批,售价50000
  • 代理赚差价违法吗
  • 酒店会计的账务处理
  • 服装店的财务会计怎么做
  • 固定资产实务训练题目及答案
  • 史上最简单的飞镖
  • mysql 通过拷贝数据文件的方式进行数据库迁移实例
  • 哪个是win8.1更新win10的补丁
  • linux增加命令
  • centos怎么备份
  • win7禁用驱动签名后可以正常启动吗
  • winxp回收站清空了怎么恢复
  • rtvscn95.exe - rtvscn95是什么进程 有什么用
  • 各种linux系统比较
  • win8开机界面
  • 你所知道的三维建模软件有哪些?
  • cocos2dx openGL
  • 详解怎样利用双色球密码选号
  • 删除默认共享的文件夹
  • 脚本合集
  • 基于flask的开源项目
  • Unity3D游戏开发标准教程
  • scp 将数据从一台linux服务器复制到另一台linux服务器
  • shell删除一个文件
  • staticlayout 换行
  • python中__init__
  • 备份系统apk
  • 深圳前海自贸区医院是三甲吗
  • 督查局工作怎么样
  • 金融机构不包括
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设