Spring Cloud Alibaba- 主要功能简介与主要组件

Posted 飘然渡沧海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud Alibaba- 主要功能简介与主要组件相关的知识,希望对你有一定的参考价值。

Spring Cloud Alibaba

微服务简介

架构的演变

随着互联网的发展,网站应用的规模也不断的扩大,进而导致系统架构也在不断的进行变化,从互联网早起到现在,系统架构大体经历了下面几个过程:

单体应用架构:

把所有功能都集中在一个应用中,统一部署,开发成本、部署成本和维护成本低

  • 优点:项目架构简单,适合用户量少的项目,开发成本低,项目部署在一个节点上,维护方便。
  • 缺点:功能集中在一个工程中,对于大型项目比一开发和维护,项目模块紧耦合,单点容错率低,无法对不同的模块功能进行针对性的优化和水平拓展

垂直应用架构:

所谓垂直应用架构,其实就是把之前的单体应用拆分成多个应用,以提升效率,比如电商系统可以拆分成:电商系统、后台系统、CMS系统

  • 优点:项目拆分实现了流量分担,解决了并发问题,而且可以针对不同模块进行优化和水平拓展,同时不同的系统之间不会互相影响,提高容错率
  • 缺点:系统之间互相存在,无法进行相互调用,系统之间互相独立,会造成一部分功能的冗余

分布式架构:

随着业务的增加,在垂直应用架构中冗余的业务代码越来越多,就需要将冗余的部分抽取出来,统一做成业务层单独处理,变成一个单独的服务,控制层调用不同的业务层服务就能完成不同的业务功能,具体表现就是一个项目拆分成表现层和服务层两个部分,服务层中包含业务逻辑,表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现,这就是分布式架构。

  • 优点:抽取公共的功能作为服务层,提高代码复用行。
  • 缺点:系统间耦合度变高,调用关系错综复杂,难以维护。

SOA架构:

分布式架构中的缺点就是调用复杂,而且当服务越来越多,或者当某一个服务压力过大需要水平拓展和负载均衡,对于资源调度和治理就需要用到治理中心SOA(Service Oriented Architecture)为核心来解决,同时治理中心还可以帮助我们解决服务之间协议不同的问题。

  • 优点:使用治理中心(ESB\\dubbo)解决了服务见调用关系的自动调节
  • 缺点:服务间会有依赖关系,一旦某个环节出错会影响较大(服务雪崩),服务关系复杂,运维、测试部署困难。

微服务架构:

微服务架构在某种程度上面架构SOA继续发展的下一步,它更加强调服务的“彻底拆分”,目的就是提高效率,微服务架构中,每个服务必须独立部署同时互不影响,微服务架构更加轻巧,轻量级。

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

  1. 微服务架构比SOA架构会更加的精细,让专业的人去做专业的。
  2. 目的是提高效率每个服务之间互不影响,微服务架构中,每个服务需要独立部署
  3. SOA架构中可能数据库存储会发生共享,微服务强调每个服务都是单独数据库,保证每个服务之间互不影响。
  4. 微服务项目架构比SOA架构更加适合与互联网公司迅捷开发、快速迭代版本,因为粒度非常精细。

微服务架构:

  • 优点:服务原子化拆分,独立打包、部署和升级,保证每个微服务清晰的任务划分,利于扩展
  • 缺点:分布式系统开发的技术成本高(容错、分布式事务等),复杂性更高,每个微服务进行分布式独立部署,当进行模块调用的时候,分布式将会变得更加麻烦。

Spring Cloud 发展历史

Spring Cloud netflix -> Spring Cloud Alibaba

  1. 2020-12-22日Spring 官方博客宣布,Spring Cloud 2020.0.0正式发布。2020.0.0是第一个使用新的版本号命名方案的Spring Cloud 发行版本。在此之前Spring Cloud 使用英国伦敦地铁站的命名方式来命名一个大版本(train version),如果不按照新的版本号命名的话,本次的版本号应该是Ilford。
  2. 更新版本没有什么大惊小怪的,但是本次更新却正式开启了Spring Cloud Netflix 体系的终结进程。Netflix 公司是目前微服务落地中最成功的公司。它开源了诸如EurekaHystrixZuulFeignRibbon 等等广大开发者所知微服务套件,统称为Netflix OSS 。在当时Netflix OSS 成为微服务组件上事实的标准。但是在2018年Netflix 公司宣布其核心组件HystrixRibbonZuulEureka 等进入维护状态 ,不再进行新特性开发,只修BUG。这直接影响了Spring Cloud 项目的发展路线,Spring 官方不得不采取了应对措施,在2019年的在 SpringOne 2019 大会中,Spring Cloud 宣布 Spring Cloud Netflix项目进入维护模式 ,并在2020年移除相关的Netflix OSS 组件。
  3. Spring Cloud Aalibaba 成为了主流

2 Spring Cloud Alibaba

简介

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

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

主要功能

  • 服务限流降级 :默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
  • 服务注册与发现 :适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
  • 分布式配置管理 :支持分布式系统中的外部化配置,配置更改时自动刷新。
  • 消息驱动能力 :基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
  • 分布式事务 :使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。
  • 阿里云对象存储 :阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
  • 分布式任务调度 :提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
  • 阿里云短信服务 :覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

组件

[Sentinel] :阿里巴巴源产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

[Nacos] :一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

[RocketMQ] :一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

[Dubbo] :Apache Dubbo™ 是一款高性能 Java RPC 框架。

[Seata] :阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

[Alibaba Cloud OSS] : 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

[Alibaba Cloud SchedulerX]: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。

[Alibaba Cloud SMS] : 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

Spring Cloud Alibaba系列教程——Spring Cloud Alibaba开篇

随着Spring Cloud Alibaba的发展,Spring Cloud Alibaba的相关组件逐渐的成熟,对于它的学习和研究已经是java开发人员的趋势。这篇博文主要内容是介绍什么是Spring Cloud Alibaba,Spring Cloud 与Spring Cloud Alibaba的关系,以及我们为什么要学习它,以及畅想Spring Cloud Alibaba未来发展。

在介绍Spring Cloud Alibaba之前,我们先简单的说一下Spring Cloud。

文章目录

先说说Spring Cloud

提起微服务,不得不提 Spring Cloud全家桶系列,SpringCloud 是一系列框架的有序集合。Spring Cloud 通过 Spring Boot 风格的封装,屏蔽掉了复杂的配置和实现原理,简化了分布式系统集成设施的开发。Spring Cloud提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案。

一般来说,Spring Cloud 包含以下组件,主要以 Netflix 开源为主:

Spring Cloud Alibaba 是什么

官网介绍:

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

简单一句话总结: 在Spring Cloud Alibaba的基础上,使用阿里开源的中间件来搭建分布式应用系统。

为什么要学习Spring Cloud Alibaba

同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

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

作为 Spring Cloud 体系下的新实现,Spring Cloud Alibaba 跟官方的组件或其它的第三方实现如 Netflix, Consul,Zookeeper 等对比,具备了更多的功能:

Spring Cloud Alibaba的主要功能

  • 服务限流降级:默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
  • 服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
  • 分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
  • 消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
  • 分布式事务:使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。。
  • 阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
  • 分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
  • 阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

Spring Cloud Alibaba 已包含组件

这幅图是 Spring Cloud Alibaba 系列组件,其中包含了阿里开源组件,阿里云商业化组件,以及集成Spring Cloud 组件。

阿里开源组件

Nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Sentinel

把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

RocketMQ

开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

Dubbo

这个就不用多说了,在国内应用非常广泛的一款高性能 Java RPC 框架。

Seata

阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

Arthas

开源的Java动态追踪工具,基于字节码增强技术,功能非常强大。

阿里商业化组件

作为一家商业公司,阿里巴巴推出 Spring Cloud Alibaba,很大程度上是希望通过抢占开发者生态,来帮助推广自家的云产品。大家可以细品。O(∩_∩)O哈哈~

Alibaba Cloud ACM

一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。

Alibaba Cloud OSS

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

Alibaba Cloud SchedulerX

阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准的定时(基于 Cron 表达式)任务调度服务。

Alibaba Cloud SMS

覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

集成 Spring Cloud 组件

Spring Cloud Alibaba 作为整套的微服务解决组件,只依靠目前阿里的开源组件是不够的,更多的是集成当前的社区组件,所以 Spring Cloud Alibaba 可以集成 Zuul,OpenFeign等网关,也支持 Spring Cloud Stream 消息组件。

Spring Cloud Alibaba和Spring Cloud 的关系

SpringCloud Alibaba是SpringCloud的子项目,SpringCloud Alibaba符合SpringCloud标准。

SpringCloud与SpringCloud Alibaba的关系,如下图:

一句话总结:Spring Cloud Alibaba是符合Spring Cloud标准的,一套完整的分布式解决方案。

为什么我看好 Spring Cloud Alibaba

Spring Cloud Alibaba 虽然诞生时间不久,但是背靠大树好乘凉,赖于阿里巴巴强大的技术影响力,已经成为微服务解决方案的重要选择之一。

我看好Spring Cloud Alibaba的原因,如下:

Spring Cloud众多组件停更,升级

Spring Cloud全家桶系列中众多组件,已经停止更新,例如Eureka,zuul等。并且相关的组件不再主动修改bug,不再发布新版本。对于线上依赖Spring Cloud组件的众多公司不得不,寻找更好的解决方案。

Spring Cloud第一代的停更列表,如下图:

Spring Cloud Alibaba集成Spring Cloud组件

Spring Cloud Alibaba不仅仅整合了当前社区的开源组件,而且在Spring Cloud的基础上,对Spring Cloud的集成已经非常的成熟,能够满足我们对分布式系统开发对公共组件所有的解决方案。

阿里巴巴强大的技能能力和极力推动社区发展

阿里巴巴是国内开源技术领域的最有影响力的公司之一,已经有非常多成功的开源组件,例如:Dubbo、Druid,FastJson,RocketMQ等,再加上阿里不遗余力的推广,社区发展也非常快。众多开源组件都经历过双十一大促的线上考验,能够满足高并发,高性能,高可扩展的需求。

博主会不间断的持续更新这个系列的文章,请大家期待。

Spring Cloud Alibaba系列

《Nacos系列》

  1. Spring Cloud Alibaba系列教程——Spring Cloud Alibaba开篇试读
  2. Spring Cloud Alibaba简介及版本说明试读
  3. Nacos介绍与安装,开启新时代试读
  4. 使用Nacos作为分布式注册中心,实现服务注册与发现
  5. 解锁服务调用姿势与负载均衡
  6. 使用Nacos实现分布式配置中心
  7. 使用Nacos实现多环境配置以及最佳实践
  8. Nacos的数据持久化已更新
  9. Nacos的集群部署(docker版)已更新

《Sentinel系列》

  1. Sentinel简介与安装已更新
  2. Sentinel流控规则简介与实践已更新
  3. Sentinel降级规则简介与实践已更新
  4. Sentinel热点key规则简介与实践已更新
  5. Sentinel系统规则与授权规则简介与实践已更新
  6. Sentinel的核心注解SentinelResource简介与实践已更新
  7. Sentinel服务熔断简介与实践已更新
  8. Sentinel对RestTemplate和Feign的适配已更新
  9. Sentinel动态规则,使用 Nacos 配置规则已更新
  10. Sentinel、Gateway、Nacos高可用网关限流三剑客已更新
  11. Sentinel实现动态配置的集群流控已更新

《RocketMQ系列》

  1. RocketMQ快速入门,简介与安装
  2. RocketMQ的常见用法
  3. RocketMQ消息的存储和发送
  4. RocketMQ刷盘机制
  5. RocketMQ高可用机制
  6. RocketMQ负载均衡
  7. RocketMQ消息重试

《Seata系列》

  1. 事务与分布式事务的基本概念
  2. Seata快速入门,原理与安装
  3. 什么是XA,使用Seata实现XA模式
  4. 什么是TCC,使用Seata实现TCC模式
  5. 什么是AT,使用Seata实现AT模式
  6. 可靠消息最终一致性,解决分布式事务
  7. 最大努力通知,解决分布式事务

博主写作不易,加个关注呗

求关注、求点赞,加个关注不迷路,感谢
点赞是对我最大的鼓励
↓↓↓↓↓↓

以上是关于Spring Cloud Alibaba- 主要功能简介与主要组件的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Alibaba系列教程——Spring Cloud Alibaba开篇

Spring Cloud Alibaba- 主要功能简介与主要组件

Spring Cloud Alibaba Dubbo 集成

Spring Cloud Alibaba:版本对应关系

当Spring Cloud Alibaba Sentinel碰上Spring Cloud Sleut

spring cloud alibaba 简介