SpringCloud-Alibaba-Nacos配置中心
如何接入
在启动示例进行演示之前,我们先了解一下 Spring Cloud 应用如何接入 Nacos Config。 注意 本章节只是为了便于您理解接入方式,本示例代码中已经完成接入工作,您无需再进行修改。
-
首先,修改 pom.xml 文件,引入 Nacos Config Starter。
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config -
在应用的 /src/main/resources/bootstrap.properties 配置文件中配置 Nacos Config 元数据
spring.application.name=nacos-config-example spring.cloud.nacos.config.server-addr=127.0.0.1:8848
-
完成上述两步后,应用会从 Nacos Config 中获取相应的配置,并添加在 Spring Environment 的 PropertySources 中。这里我们使用 @Value 注解来将对应的配置注入到 SampleController 的 userName 和 age 字段,并添加 @RefreshScope 打开动态刷新功能
@RefreshScope class SampleController { @Value("${user.name}") String userName; @Value("${user.age}") int age; }
启动 Nacos Server 并添加配置
-
首先需要获取 Nacos Server,支持直接下载和源码构建两种方式。推荐使用最新版本 Nacos Server
- 直接下载:Nacos Server 下载页
- 源码构建:进入 Nacos Github 项目页面,将代码 git clone 到本地自行编译打包,参考此文档。
-
启动 Server,进入下载到本地并解压完成后的文件夹(使用源码构建的方式则进入编译打包好的文件夹),再进去其相对文件夹 nacos/bin,并对照操作系统实际情况执行如下命令。详情参考此文档。
- Linux/Unix/Mac 操作系统,执行命令
sh startup.sh -m standalone
- Windows 操作系统,执行命令
cmd startup.cmd
- Linux/Unix/Mac 操作系统,执行命令
-
在命令行执行如下命令,向 Nacos Server 中添加一条配置。
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config-example.properties&group=DEFAULT_GROUP&content=user.id=1%0Auser.name=james%0Auser.age=17"
注:你也可以使用其他方式添加,遵循 HTTP API 规范即可,若您使用的 Nacos 版本自带控制台,建议直接使用控制台进行配置
添加的配置的详情如下
dataId 为 nacos-config-example.properties group 为 DEFAULT_GROUP 内容如下 user.id=1 user.name=james user.age=17
应用启动
-
增加配置,在应用的 /src/main/resources/application.properties 中添加基本配置信息
server.port=18084 management.endpoints.web.exposure.include=*
-
启动应用,支持 IDE 直接启动和编译打包后启动。
- IDE直接启动:找到主类
Application
,执行 main 方法启动应用。 - 打包编译后启动:首先执行
mvn clean package
将工程编译打包,然后执行java -jar nacos-config-example.jar
启动应用。
- IDE直接启动:找到主类
验证
验证自动注入
在浏览器地址栏输入 http://127.0.0.1:18084/user
,并点击调转,可以看到成功从 Nacos Config Server 中获取了数据。
验证动态刷新
-
执行如下命令,修改 Nacos Server 端的配置数据
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config-example.properties&group=DEFAULT_GROUP&content=user.id=1%0Auser.name=james%0Auser.age=18"
-
在浏览器地址栏输入
http://127.0.0.1:18084/user
,并点击调转,可以看到应用从 Nacos Server 中获取了最新的数据,age 变成了 18。