0


Spring Cloud Alibaba

What is SCA

Spring Cloud Alibaba

致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过

Spring Cloud

编程模型轻松使用这些组件来开发分布式应用服务。

依托

Spring Cloud Alibaba

,您只需要添加一些注解和少量配置,就可以将

Spring Cloud

应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。

虽然

Spring Cloud

提供了非常强大的功能,但是它并不提供所有的实现,而是通过

Spring Cloud Common

子项目,定义了统一的抽象

API

。如下图所示:
在这里插入图片描述
而后,不同厂商结合其自身的中间件,提供自己的

Spring Cloud 

套件,例如说:
1.

Netflix

结合自己的

Eureka

Ribbon

Hystrix

等开源中间件,实现了

spring-cloud-Netflix
  1. Kubernetes
    

    结合自己的

    apiserver
    

    configmap
    

    等功能,实现了

    spring-cloud-kubernetes
    
  2. Alibaba
    

    结合自己的

    Nacos
    

    Dubbo
    

    Sentinel
    

    等开源中间件,实现了

    spring-cloud-Alibaba
    

当然,

Spring Cloud

官方还是提供了一些功能的具体实现的,例如说:
1.

API

网关:

Spring Cloud Gateway

2.配置中心:

Spring Cloud Config

3.链路追踪:

Spring Cloud Sleuth

4.消息驱动:

Spring Cloud Stream

5.事件总线:

Spring Cloud Bus

6.服务调用:

Spring Cloud OpenFeign

7.负载均衡:

Spring Cloud Load Balancer 

Spring Cloud

官方、

Netflix

Alibaba

三者整理成如下表格:
Spring Cloud官方Spring Cloud NetflixSpring Cloud Alibaba配置中心Spring Cloud Config
Spring Cloud VaultArchaiusNacos注册中心-EurekaNacos服务调用Spring Cloud OpenFeign
RestTemplate-Dubbo负载均衡Spring Cloud Load BalancerRibbonDubbo服务容错-HystrixSentinelAPI网关Spring Cloud GatewayZuul-消息驱动Spring Cloud Stream RabbitMQ
Spring Cloud Stream Kafka-Spring Cloud Stream RocketMQ事件总线Spring Cloud Bus RabbitMQ
Spring Cloud Bus Kafka-Spring Cloud Bus RocketMQ链路追踪Spring Cloud Sleuth--分布式事务--Seata分布式调度--SchedulerX

二、Spring Cloud Alibaba 套件

Spring Cloud Alibaba

套件,阿里开源组件、阿里云商业组件整合进

Spring Cloud

体系当中,同时对

Spring Cloud Gateway

OpenFeign

Ribbon

等等进行集成。整体如下图所示:
在这里插入图片描述

Spring Cloud Alibaba

套件中的阿里开源组件和阿里云商业组件整理如下对照表:
开源组件阿里云商业组件配置中心NacosACM注册中心NacosANS服务调用Dubbo负载均衡Dubbo服务容错SentinelAHASAPI 网关--消息驱动RocketMQONS事件总线RocketMQONS分布式事务Seata-分布式调度-SchedulerX链路追踪-OSS短信服务-SMS
**目前

Spring Cloud Alibaba

提供了如下功能:**
【1】服务限流降级: 支持

WebServlet

WebFlux

OpenFeign

RestTemplate

Dubbo 

限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级

Metrics

监控。
【2】服务注册与发现: 适配

Spring Cloud

服务注册与发现标准,默认集成了

Ribbon

的支持。
【3】分布式配置管理: 支持分布式系统中的外部化配置,配置更改时自动刷新。
**【4】

Rpc

服务:** 扩展

Spring Cloud

客户端

RestTemplate

OpenFeign

,支持调用

Dubbo RPC

服务
【5】消息驱动能力: 基于

Spring Cloud Stream

为微服务应用构建消息驱动能力。
【6】分布式事务: 使用

@GlobalTransactional

注解, 高效并且对业务零侵入地解决分布式事务问题。
【7】阿里云对象存储: 阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
【8】分布式任务调度: 提供秒级、精准、高可靠、高可用的定时(基于

Cron

表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有

Worker(schedulerx-client)

上执行。
【9】阿里云短信服务: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

三、怎么用

引入

Spring Cloud Alibaba

依赖管理 ,

Spring Cloud Alibaba BOM

包含了它所使用的所有依赖的版本。

<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version> 2.2.5.RELEASE </version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

然后在

dependencies

中添加自己所需使用的依赖即可使用。

版本说明:
Spring Cloud Alibaba VersionNacos VersionSentinel VersionRocket MQ VersionDubbo VersionSeata Version2021.1 or 2.2.5 RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.8.01.4.14.4.02.7.81.3.02.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.7.11.2.14.4.02.7.81.3.02.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE1.7.11.1.44.4.02.7.61.2.02.2.0.RELEASE1.7.11.1.44.4.02.7.4.11.0.02.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE1.7.01.1.44.4.02.7.30.9.02.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE1.6.31.1.14.4.02.7.30.7.1
毕业版本依赖关系(推荐使用)
Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot VersionSpring Cloud 2020.0.02021.12.4.2Spring Cloud Hoxton.SR82.2.5.RELEASE2.3.2.RELEASESpring Cloud Greenwich.SR62.1.4.RELEASE2.1.13.RELEASESpring Cloud Hoxton.SR32.2.1.RELEASE2.2.5.RELEASESpring Cloud Hoxton.RELEASE2.2.0.RELEASE2.2.X.RELEASESpring Cloud Greenwich2.1.2.RELEASE2.1.X.RELEASESpring Cloud Finchley2.0.4.RELEASE(停止维护)2.0.X.RELEASESpring Cloud Edgware1.5.1.RELEASE(停止维护)1.5.X.RELEASE

Spring Cloud Alibaba Dubbo

比较重要的特性,使用

Spring Cloud

定义的应用级别的注册模型,将

Dubbo

服务注册到

Spring Cloud

编程模型的注册中心。如此,

Spring Cloud Alibaba Dubbo

又将

Feign

RestTemplate

进一步增强,实现对

Spring Cloud Alibaba Dubbo

服务的调用。最终如下图所示:
在这里插入图片描述

四、Spring Cloud Alibaba 整合 Dubbo

项目结构
在这里插入图片描述
执行

ProviderApplication

来启动服务提供者。可以在

Nacos

可以看到

demo-provider

服务,如下图所示:
在这里插入图片描述

执行

ConsumerApplication

来启动服务消费者。可以在

Nacos

可以看到

demo-consumer

服务,如下图所示:
在这里插入图片描述
请求

<http://127.0.0.1:8080/user/get?id=1>

接口,返回结果如下:
在这里插入图片描述


本文转载自: https://blog.csdn.net/zhengzhaoyang122/article/details/144010224
版权归原作者 程序猿进阶 所有, 如有侵权,请联系我们删除。

“Spring Cloud Alibaba”的评论:

还没有评论