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完全相同,只是引入依赖有些区别。
引入依赖:
2021.0.0 2.2.7.RELEASE org.springframework.boot spring-boot-starter-parent 2.6.3 org.springframework.cloud spring-cloud-dependencies ${spring.cloud-version} pom import com.alibaba.cloud spring-cloud-alibaba-dependencies ${spring.cloud.alibaba.version} pom import
【注】:我们新开的父项目在一个新的路径下,这个时候需要将该目录下的JDK和Maven重新配置,否则会出现问题。
Nacos替换consul使用Nacos替换consul需要注意的是,连接注册中心的依赖需要更改,远端服务器中的注册中心组件需要更改。
Nacos下载Nacos下载教程
在此需要说明一下,下载教程中为大家提供了两个下载链接,主要是版本不同,大家注意区分。因为大家在使用Nacos依赖的版本如果过高(2.0版本以上)的时候,低版本的Nacos服务无法承载本地的版本。
查看Nacos在GitHub中的版本依赖开一发现,在1.4.1版本开始修改了老版本的客户端代码,所以大家要区分自己需要的版本。
Nacos客户端配置在此创建的NacosClient服务仅仅代指需要注册到注册中心的微服务。
引入依赖
org.springframework.boot spring-boot-starter-web com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
书写配置
server.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}
入口类添加注解
@SpringBootApplication
// 该注解表示根据配置文件来讲服务注册到相应的注册中心中,从20版本以后就可以不用写了
//@EnableDiscoveryClient
public class NacosClientApplication {
public static void main(String[] args) {
SpringApplication.run(NacosClientApplication.class,args);
}
}
**【注】:**如果发现启动过程中发现无法连接到Nacos服务,请检查网络以及自己的版本是否可以可以匹配。
Nacos套用OpenFeignNacos使用OpenFeign进行服务间通信需要注意一些问题,如下:
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery com.netflix.ribbon ribbon org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-loadbalancer
**【注】:**注释里面都说明了,在此不做赘述。
总结从本篇笔记开始记录的问题,都是基于之前笔记的说明, 所以建议想要学习的同学进行系统的学习。最后,大家一定要对自己使用的版本进行查看。



