SpringCloud(十)——Spring Cloud Alibaba组件
前言
- SpringCloudAlibaba官方定义:
该微服务工具集是分布式应用开发的一整套解决方案。换句话说,该工具集为分布式应用开发提供了一站式解决方案,其中包含开发分布式应用的所有组件。
- SpringCloudAlibaba特性以及提供的组件:
- 服务流量控制和服务降级(
Sentinel
):对应替换Hystrix
; - 服务注册和发现组件(
Nacos
):对应替换consul
以及Eureka
; - 统一中心(
Nacos
):对应替换config
; - 事件驱动(
RocketMQ
):对应替换Bus
; - 分布式事务支持(
Seata
); - Dubbo RPC:使用这个协议的前提是各个微服务使用的语言必须是同一种(Java)。
- 服务流量控制和服务降级(
上述的几个组件中,Alibaba被使用的是前三个(即加粗)的组件,现今微服务开发使用的组件为:
- Nacos:服务注册中心以及统一配置中心;
- HttpRest:结合Ribbon或OpenFeign组件实现服务间的负载均衡通信;
- Sentinel:服务流量监控以及服务降级;
- Gateway:网关组件。
文章目录
- SpringCloud(十)——Spring Cloud Alibaba组件
- 前言
- 父项目环境搭建
- Nacos替换consul
- Nacos下载
- Nacos客户端配置
- Nacos套用OpenFeign
- 总结
父项目环境搭建
本篇笔记开始说明SpringCloudAlibaba的相关组件,其项目环境搭建和SpringCloud完全相同,只是引入依赖有些区别。
- 引入依赖:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35<!--控制SpringCloud以及SpringCloudAlibaba版本依赖--> <properties> <spring.cloud-version>2021.0.0</spring.cloud-version> <spring.cloud.alibaba.version>2.2.7.RELEASE</spring.cloud.alibaba.version> </properties> <!--SpringBoot版本--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.3</version> </parent> <!--SpringCloud以及Alibaba组件版本依赖--> <dependencyManagement> <dependencies> <!--维护SpringCloud 版本--> <!--SpringCloud插件的引入同样不会引入依赖,只是维护版本--> <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>
【注】:我们新开的父项目在一个新的路径下,这个时候需要将该目录下的JDK和Maven重新配置,否则会出现问题。
Nacos替换consul
使用Nacos替换consul需要注意的是,连接注册中心的依赖需要更改,远端服务器中的注册中心组件需要更改。
Nacos下载
Nacos下载教程
在此需要说明一下,下载教程中为大家提供了两个下载链接,主要是版本不同,大家注意区分。因为大家在使用Nacos
依赖的版本如果过高(2.0版本以上)的时候,低版本的Nacos
服务无法承载本地的版本。
查看Nacos
在GitHub中的版本依赖开一发现,在1.4.1版本开始修改了老版本的客户端代码,所以大家要区分自己需要的版本。
Nacos客户端配置
在此创建的NacosClient
服务仅仅代指需要注册到注册中心的微服务。
- 引入依赖
1
2
3
4
5
6
7
8
9
10
11
12
13<dependencies> <!--SpringCloud 项目必须基于SpringBoot--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--nacos 依赖--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies>
- 书写配置
1
2
3
4
5
6
7
8
9server.port=8081 spring.application.name=NACOSCLIENT # 配置总nacos #spring.cloud.nacos.server-addr=${ip}:8848 # 单纯配置注册中心的路径 spring.cloud.nacos.discovery.server-addr=${ip}:8848 # 服务名 ,默认为SpringBoot服务名,所以可以不写 #spring.cloud.nacos.discovery.service=${spring.application.name}
- 入口类添加注解
1
2
3
4
5
6
7
8
9@SpringBootApplication // 该注解表示根据配置文件来讲服务注册到相应的注册中心中,从20版本以后就可以不用写了 //@EnableDiscoveryClient public class NacosClientApplication { public static void main(String[] args) { SpringApplication.run(NacosClientApplication.class,args); } }
**【注】:**如果发现启动过程中发现无法连接到Nacos服务,请检查网络以及自己的版本是否可以可以匹配。
Nacos套用OpenFeign
Nacos使用OpenFeign进行服务间通信需要注意一些问题,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23<!--nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <!--查看源码发现:SpringCloud在Hoxton.M2 RELEASED 版本之后就舍弃掉了Ribbon,而是使用LoadBalance--> <!--所以,不引入对应的LoadBalance会报错,同时,要注意去掉nacos中的ribbon组件,否则会覆盖loadbalance失效--> <exclusions> <exclusion> <groupId>com.netflix.ribbon</groupId> <artifactId>ribbon</artifactId> </exclusion> </exclusions> </dependency> <!--openfeign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-loadbalancer</artifactId> </dependency>
**【注】:**注释里面都说明了,在此不做赘述。
总结
从本篇笔记开始记录的问题,都是基于之前笔记的说明, 所以建议想要学习的同学进行系统的学习。最后,大家一定要对自己使用的版本进行查看。
最后
以上就是愤怒小甜瓜最近收集整理的关于SpringCloud(十)——Spring Cloud Alibaba组件SpringCloud(十)——Spring Cloud Alibaba组件的全部内容,更多相关SpringCloud(十)——Spring内容请搜索靠谱客的其他文章。
发表评论 取消回复