本文主要是介绍SpringCloudAlibaba(三):使用Nacos作为配置中心,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
之前提到了这次从php技术栈迁移到java技术栈要解决的一个问题就是集中化配置管理。
我们为什么会有配置中心的需求?
- 配置管理变更较为方便
- 合理控制配置的权限内容
Nacos 控制台增加配置文件
- 进入Nacos管理界面,在【配置管理】-【配置列表】功能页面点击右上角的 + 号。
- 进入 新建配置 页面,填写要新增的配置内容
- WARN:Data ID的默认扩展名为properties,如果需要使用yaml格式则需要指明是 .yaml
- 发布配置 配置完成后点击发布,即可在配置列表中看到刚才新增的配置
创建Nacos Config客户端
- 新建项目,由于使用SpringCloudAlibaba直接引用相关依赖 ```xml
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config org.springframework.boot spring-boot-starter-web
2. 创建应用主类并且实现一个HTTP接口
* 启动类
```java
@SpringBootApplication
public class NacosConfigApplication {public static void main(String[] args) {SpringApplication.run(NacosConfigApplication.class,args);}
}
- Controller
@RefreshScope @RestController @RequestMapping("/config") public class ConfigController { @Value("${useLocalCache:false}") private boolean useLocalCache;@Value("${name}") private String name;@RequestMapping("/get") public boolean get() {return useLocalCache; }@RequestMapping("/name") public String name(){return name; } }
@RefreshScope在这里的作用就是让配置内容支持动态刷新,也就是当应用运行中,我们在Nacos控制台修改了配置之后这里也会动态的更新。
- 项目bootstrap.properties配置服务名称与Nacos地址
# 配置中心url spring.cloud.nacos.config.server-addr=localhost:8848 # 配置中心展现的服务名称 spring.application.name=nacos-config-example #配置文件类型[TEXT,JSON,XML,YAML,HTML,Properties] spring.cloud.nacos.config.file-extension=properties # 配置分组,当前的业务基本选择为某些的GROUP,可以基于业务来划分不同的分组. spring.cloud.nacos.config.group=DEFAULT_GROUP # 默认选择的配置环境,当前把环境划分为4套, dev[开发环境],test[测试环境],pre[预发环境],prod[生产环境] spring.profiles.active=dev
WARN 多环境配置中需要指定Nacos namespace的id,而不是指定namespace的名称
- 启动应用程序并进行验证
- 启动应用
- 发送请求测试配置是否生效
- 修改配置进行进行动态刷新
进入Nacos控制台修改配置信息,name修改为bigData 再次进行测试
再次发送请求
- 启动应用
至此使用Nacos作为配置中心已经完全搞定,并且也实现了多环境的配置。多环境有几种方式实现,但是我依然习惯使用namespace的方式来实现。
源码:
github: https://github.com/CainGao/SpringCloudAlibabaExample 码云: https://gitee.com/CainGao/SpringCloudAlibabaExample
这篇关于SpringCloudAlibaba(三):使用Nacos作为配置中心的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!