在 Spring Cloud 项目中,通常使用 Eureka Server 作为注册与发现服务,但其实上有很多开源的注册与发现服务可以选择,今天要演示的就是在 Spring Cloud 微服务系统中使用阿里的 Nacos 作为注册与发现服务,因为 Nacos 自带了配置服务,所以我们也会演示配置服务的相关功能。
加入依赖库
要在项目中使用 nacos,需要在 pom.xml 文件中加入以下两个依赖为:
1 | <dependency> |
注意:Spring Cloud 的版本只支持 2.2 到 2.3 之间
加入动态配置项
假设在 Controller 中,有一个名为 greeting 的变量需要通过配置来进行设置,可以添加如下的代码:
1 |
|
@Value 告诉 Spring Boot, 该值需要通过配置文件取,如果取不到,则使用默认值: “hello”
@RefreshScope 定义动态刷新配置项
配置启动项
在 src/resources 目录中添加一个名为: bootstrap.properties 的文件,加入以下内容:
1 | spring.cloud.nacos.config.server-addr=127.0.0.1:8848 |
spring.cloud.nacos.config.server-addr 指定了环境中配置服务器的部署地址,也就是运行 nacos 的地址(单机或集群,多个地址用”,”进行分割)
不需要改动项目启动类,也不需要特别指明注册与发现服务器地址
然后就可以启动服务了。 启动以后,可以在 nacos 的控制台的服务列表中查看。
更改配置项
进入 nacos 的控制台, 选择配置 -> 添加(右上角的加号)。
增加一个名为: account-srv-with-nacos 的配置文件(**该文件名必须与应用名:spring.application.name 一致),可选择多种类型,本例中使用 yaml 类型。
然后在项目的编辑框中输入:
1 | greeting: "ok" |
然后保存,如果以上步骤没出错的话,可以在应用的 log 文件中看到配置被主动推送到了应用服务中,这个时候在访问应用的 api, 就可以看到配置的结果了。