本文以 Nacos 配置管理的 Demo 应用为例,介绍如何在本地开发、调试 Spring Cloud 应用,实现 Spring Cloud Alibaba Nacos Config 实现配置管理,并通过 SAE 进行配置管理与推送。
背景信息
在开发 Spring Cloud 应用时,您可以在本地使用 Nacos (https://nacos.io) 实现应用的配置管理。由于 SAE 集成了 Nacos 的应用配置管理 ACM 的开源版本,在应用部署到 SAE 后,您可以通过 SAE 对应用进行配置的管理和推送。
本文以 Spring Cloud 应用开发过程为例,使用 Spring Cloud Alibaba Nacos Config 实现配置管理。您也可以下载该应用示例的 Demo nacos-config-example。
准备工作
在开始开发前,请确保您已经完成以下工作:
- 下载 Maven 并设置环境变量。
- 下载最新版本的 Nacos Server。
- 启动 Nacos Server。
- 解压下载的 Nacos Server 压缩包
- 进入
nacos/bin
目录,启动 Nacos Server。- Linux/Unix/Mac 系统:执行命令
sh startup.sh -m standalone
。 -
Windows 系统:双击执行
startup.cmd
文件。
- Linux/Unix/Mac 系统:执行命令
- 在本地 Nacos Server 控制台新建配置。
- 登录本地 Nacos Server 控制台(用户名和密码默认同为 nacos)。
- 在左侧导航栏中单击配置列表,在配置列表页面右上角单击新建配置图标。
- 在新建配置页面填入以下信息,单击并发布。
- Data ID: nacos-config-example.properties
- Group: DEFAULT_GROUP
- 配置内容: test.name=nacos-config-test
使用 Nacos Config 实现配置管理
部署到 SAE
在本地完成应用的开发和测试后,将应用程序部署到 SAE,详细步骤请参见应用部署概述。
- SAE 配置管理中心提供了正式商用版本 Nacos Server。当您将应用部署到 SAE 的时候,SAE 会通过优先级更高的方式去设置 Nacos Server 服务端地址和服务端口,以及 namespace、access-key、secret-key、context-path 信息。您无需进行任何额外的配置,原有的配置内容可以选择保留或删除。
- 如果您是初次在 SAE 控制台进行部署。如果使用 JAR 包部署,在创建应用时应用运行环境 须选 标准 Java 应用运行环境。
在部署应用前,请使用 SAE 的配置管理功能,创建与本地 Nacos Server 中相同的应用配置。
结果验证
- 部署完成后,可以通过查看日志确认应用是否启动成功。
- 执行命令
curl http://<应用实例 IP>:<服务端口>
,如curl http://192.168.0.34:8080
查看是否返回配置内容nacos-config-test
。 - 在 SAE 控制台将原有配置内容修改为
nacos-config-test2
,再执行命令curl http://<应用实例 IP>:<服务端口>
,如curl http://192.168.0.34:8080
,查看是否返回变更后的配置内容nacos-config-test2
。
配置项参考
如果有其它需求,可以参照下表在bootstrap.properties
文件中增加配置。
配置项 | key | 默认值 | 说明 |
---|---|---|---|
服务端地址 | spring.cloud.nacos.config.server-addr | 无 | 无 |
DataId 前缀 | spring.cloud.nacos.config.prefix | ${spring.application.name} | Data ID 的前缀 |
Group | spring.cloud.nacos.config.group | DEFAULT_GROUP | |
Data ID 后缀及内容文件格式 | spring.cloud.nacos.config.file-extension | properties | Data ID 的后缀,同时也是配置内容的文件格式,默认是 properties,支持 yaml 和 yml。 |
配置内容的编码方式 | spring.cloud.nacos.config.encode | UTF-8 | 配置的编码 |
获取配置的超时时间 | spring.cloud.nacos.config.timeout | 3000 | 单位为 ms |
配置的命名空间 | spring.cloud.nacos.config.namespace | 常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源隔离等。 | |
相对路径 | spring.cloud.nacos.config.context-path | 服务端 API 的相对路径 | |
接入点 | spring.cloud.nacos.config.endpoint | UTF-8 | 地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址。 |
是否开启监听和自动刷新 | spring.cloud.nacos.config.refresh.enabled | true | 默认为 true,不需要修改。 |
更多配置项,请参考开源版本的 Spring Cloud Alibaba Nacos Config 文档。