记录一下springcloud 2.2.7配置nacos注册中心操作流程
1.导入pom依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.7.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
2.创建注册中心
注册中心:记录了服务和服务地址的映射关系,服务注册到注册中心后,当服务需要调用其他服务的时候就会在注册中心找到服务的地址进行调用。
-
服务发现:
服务注册/反注册:保存服务提供者和服务调用者的信息
服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能
服务路由(可选):具有筛选整合服务提供者的能力。 -
服务配置:
配置订阅:服务提供者和服务调用者订阅微服务相关的配置
配置下发:主动将配置推送给服务提供者和服务调用者 -
服务健康检测:
检测服务提供者的健康情况创建注册中心 nacos
1.导入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.4.RELEASE</version> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency>
该依赖的作用是清除spring-cloud-starter-alibaba-nacos-discovery 中含有的spring-cloud-starter-netflix-ribbon的包,原因是在最新版本的springcloud中不在支持ribbon负载均衡,而是使用spring-cloud-starter-loadbalancer开启负载均衡
导入spring-cloud-starter-loadbalancer
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>3.1.0</version>
</dependency>
spring-cloud-starter-loadbalancer的作用是为了配合使用远程调用(feign)有没有这个并不影响nacos的使用
4.从官网下载nacos服务,并启动nacos服务
左边为nacos服务启动成功之后的样式,右边为在官网下载的nacos服务,点击bin文件夹下的start.cmd启动
5.在application.yml配置nacos地址
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
application:
name: 该服务的服务名自己命名
6.在服务启动类上配置注解
@EnableDiscoveryClient
7.启动服务,在网页上输入127.0.0.1:8848/nacos 即可加入nacos的服务管理系统的登录界面
账号和密码都为 nacos
登录成功之后即可看见注册到nacos 的服务
好啦,出现这个之后就证明咱们的nacos注册中心就已经成功啦!
在这里我还要补充一句,在导入nacos依赖的时候,先不要导入
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${latest.version}</version>
</dependency>
这个依赖是nacos的配置中心依赖,在导入这个依赖之后需要在bootstrap.yml配置,如果不配置的话在启动服务之后会报错 另外还要记录一个问题,就是有的小伙伴从官网导入nacos注册中心依赖的时候会启动报错
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
报错原因大部分是因为Maven里没有导全,这个原因我经过研究是因为maven仓库里找不到nacos,这个时候咱们就需要在该依赖里加入<.version> 版本号,来注明它到底要下载哪个版本的依赖,还有一种解决方法就是在maven里的setting文件里修改alibaba镜像地址