Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
安装Nacos控制台
本人使用的是docker安装的,教程:https://blog.csdn.net/HXNLYW/article/details/97101028
配置管理:配置中心功能,可以新增修改配置,结合springcloud可以实现热更新配置。
服务管理:注册发现中心,所有的服务实例都在这里,可以查看服务的状态,强制下线等。
命名空间: 用于控制环境问题,有几个环境,就可以建几个。配置和服务都可以注册到相应的命名空间
集群管理: 用于管理集群的,本人还没有用过 ......
增加相应依赖
无需指定版本,版本依赖控制在<dependencyManagement>中,不明白的同学可以移步上一篇;
<!--spring cloud nacos config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- spring cloud nacos discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
增加相应配置项
namespace就是上文的提到的命名空间,用于区分环境,这里配置的是Id。
spring:
profiles:
active: '@profiles.active@'
application:
name: gourdhu-service
cloud:
# nacos-配置
nacos:
# 配置中心
config:
# 是否开启配置中心,默认true
enabled: true
server-addr: 111.231.111.150:8848
file-extension: yaml
encode: UTF-8
# 命名空间的id
namespace: 843fe123-56c4-402a-a7c8-75cd94af1db6
shared-dataids: gourdhu-local.yaml
group: GOURD
# 注册发现中心
discovery:
# 是否开启注册中心,默认true
enabled: true
group: ${spring.cloud.nacos.config.group}
# 默认应用名
service: ${spring.application.name}
server-addr: ${spring.cloud.nacos.config.server-addr}
namespace: ${spring.cloud.nacos.config.namespace}
避坑:配置项需配置在bootstrap.yml中,否则会错。
Application failed to connect to Nacos server: ""
Action:
Please check your Nacos server config
注意:dataId默认为: ${spring.application.name}-${spring.profile.active}.${file-extension}
在nacos控制台中新建相应配置项。如果未在配置中心配置相应配置,程序将读取本地yml中的配置信息。如果配置了,就优先读取配置中心的配置信息。
至此配置中心功能就整合完成了。
加载多配置文件:https://www.cnblogs.com/didispace/p/10358157.html
注册中心-增加注解
启动类增加注册发现注解 @EnableFeignClients 和 @SpringCloudApplication;
由于@SpringCloudApplication包含了@SpringBootApplication所以可以去除@SpringBootApplication注解。
至此注册中心功能整合也完成了。
启动项目
控制台输出如下内容,说明配置中心功能正常
Nacos控制台的服务管理-服务列表中查看是否存在服务实例gourdhu-service。如下说明注册中心功能正常。
热更新测试
准备测试接口,和配置项,并在接口类上加上@RefreshScope 注解。
项目启动成功后,我们直接通过浏览器访问接口,看接口返回的配置项信息,为了结果的真实性,我做了一个GIF。
至此,整合Nacos作为配置中心和注册发现中心 功能就完成啦,是不是很简单呢。
Nacos官方文档:https://nacos.io/zh-cn/docs/concepts.html
上一篇:《Spring Cloud Alibaba实战》系列-初识
下一篇:《Spring Cloud Alibaba实战》系列-Feign之远程调用
===============================================
代码均已上传至本人的开源项目
spring-cloud-plus:https://blog.csdn.net/HXNLYW/article/details/104635673