在开发Spring Cloud应用时,您可以使用Nacos(https://nacos.io)在本地实现应用的配置管理。由于Nacos是应用配置管理ACM的开源版本,在将应用部署到EDAS后,即可通过EDAS集成的ACM对应用进行配置的管理和推送。
您可以按照文档从0开发该应用示例,并使用Spring Cloud Alibaba Nacos Config实现配置管理。也可以直接下载该应用示例的Demo:nacos-config-example。
- Spring Cloud Alibaba Nacos Config完成了Nacos与Spring Cloud框架的整合,支持Spring Cloud的配置注入规范。
- EDAS提供的配置管理与开源产品(Nacos)的配置管理功能不冲突。
准备工作
在开始开发前,请确保您已经完成以下工作:
- 下载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
- 配置格式:Properties
- 配置内容:test.name=nacos-config-test
使用Nacos Config实现配置管理
本地结果验证
在浏览器访问http://127.0.0.1:18081 ,可以看到返回值为nacos-config-test
,该值即为在本地Nacos Server中新建配置中的配置内容,即test.name
的值。
将应用部署到EDAS
将应用部署到EDAS前,需要现在EDAS的配置管理中创建和本地Nacos Server一致的配置,以便应用部署后可以同步配置,然后再将应用部署到EDAS。
- 在EDAS中创建和本地Nacos Server相同的配置。
- 根据您的实际需求,将应用部署到EDAS。更多信息,请参见应用创建和部署概述(ECS)和创建和部署应用概述(K8s)。
后续操作
您的应用在部署到EDAS后,还需要持续迭代、升级。如果每次都要在本地启动Nacos Server、升级应用、本地验证再部署到EDAS进行线上验证,会影响开发效率。所以,EDAS提供了端云互联功能,开启端云互联的应用在本地启动后,和部署到EDAS的效果一致,可以直接读取EDAS配置管理中的配置并和云端的其它应用相互调用。关于端云互联的更多信息,请参见端云互联简介。
配置项参考
如果有其它需求,可以参照下表在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文档。