文章目录
- 1、SpringCloud Alibaba简介
- 1.1spring cloud alibaba 概述
- 1.2 spring cloud alibaba 特性
- 1.3 Spring Cloud组件
- 2、SpringCloud Alibaba环境搭建
- 2.1 构建项目并引入依赖
1、SpringCloud Alibaba简介
1.1spring cloud alibaba 概述
官方文档:https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html Spring Cloud Alibaba 为分布式应用开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用 Spring Cloud 开发应用程序。
使用Spring Cloud Alibaba,您只需添加一些注解和少量配置,即可将Spring Cloud应用连接到阿里巴巴的分布式解决方案,并通过阿里巴巴中间件构建分布式应用系统。
1.2 spring cloud alibaba 特性
- 流量控制和服务降级:使用 Alibaba Sentinel进行流量控制、断路和系统自适应保护。
- 服务注册域与发现:实例可以注册到阿里巴巴Nacos,客户端可以使用Spring管理的bean来发现实例。通过Spring Cloud Netflix支持Ribbon,客户端负载均衡器。
- 分布式配置:使用阿里巴巴Nacos作为数据存储。
- 事件驱动:构建与Spring Cloud Stream RocketMQ Binder连接的高度可扩展的事件驱动微服务。
- 消息总线:使用Spring Cloud Bus RocketMQ链接分布式系统的节点。
- 分布式事务:用Seata支持高性能、易用的分布式事务解决方案
- Dubbo RPC:通过Apache Dubbo RPC扩展Spring Cloud服务到服务调用的通信协议。
sentinel 替换hystrix
nacos替换eureka consul
nacos替换config&bus
分布式事务seta
1.3 Spring Cloud组件
服务注册与发现:eurekal;consul;nacos
服务间通信组件: restTemplate+ribbon;openfeign
服务降级和熔断:hystrix;hystrix dashboard;sentinel
服务网关组件:gateway
统一配置中心组件 消息总线组件:config; bus; nacos
2、SpringCloud Alibaba环境搭建
2.1 构建项目并引入依赖
springcloud版本:Hoxton.SR6
springboot版本:2.2.5.RELEASE
spring cloud alibaba版本:2.2.1.RELEASE
<!--继承springboot父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
</parent>
<!--定义版本号-->
<properties>
<spring.cloud.version>Hoxton.SR6</spring.cloud.version>
<spring.cloud.alibaba.version>2.2.1.RELEASE</spring.cloud.alibaba.version>
</properties>
<!--维护依赖-->
<dependencyManagement>
<dependencies>
<!--维护springcloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--维护springcloud alibaba-->
<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>