SpringBoot+Nacos配置中心实战
配置中心作用
1、对配置文件进行集中管理,在不同的环境下或者不同配置中,可以对配置文件进行更新和部署。
2、在程序的运行期间,可以对程序中的配置文件进行动态性调整。使用分布式配置中心,就不需要在每一台服务器上都进行配置文件的修改,所有的配置文件放在配置中心中,只需要在总服务器中进行修改,系统就会向其他的服务器进行统一的修改配置。
3、系统程序的配置发生了变动,无需要重新重启服务器,就能够自动感知相应的变化,实时更新。
配置中心优势
1、 高效。采用“配置集中管理”,可以很好的解决传统的“配置文件过于分散”的问题。所有的配置都集中在配置中心这一个地方管理,不需要每一个项目都自带一个,这样极大的减轻了开发成本。
2、配置与应用分离。所有的配置不放在应用中,而放在配置中心中。当不同环境有不同需求的时候,就到配置中心获取即可,极大的减轻了运维部署成本。
3、实时更新。系统程序的配置发生了变动,无需要重新重启服务器,就能够自动感知相应的变化,让对应的应用去调用最新的配置。
Nacos配置中心实战
Nacos是一个用于内外的分布式发现框架,我们都知道nacos一般是用在分布式框架中作为服务发现模块,实现服务的注册与发现。但是Nacos同样具备配置中心的作用,所以我们在做分布式时,可以考虑通过Nacos作为配置中心集中管理配置文件,而且不需要使用新的中间件去实现这个功能,做到引入一个模块同时能实现两种功能,提升开发效率与项目可维护性。
下面我来简单介绍一下Nacos的使用方法,大家可以简单参考一下。
1、下载Nacos
可以去官网下载压缩包或者去GitHub上下载,这里就不贴地址了
2、在Maven中引入Nacos依赖,注意Springboot和nacos的版本兼容问题,具体匹配见链接,同时版本不能太高,太高会无法识别配置,我也不知道为什么…我这里选的配置是Spring boot 2.3.2.RELEASE以及alibaba.cloud 2.2.6.RELEASE的版本,经测验可以使用
3、完成一系列springboot的初始化操作
4、设置nacos的配置文件,以下可以参考
server.port=8080
#配置中心
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#服务发现
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#服务ID
spring.application.name=example
5、在配置启动类
@EnableDiscoveryClient
@SpringBootApplication
public class SpringBootTest10Application {
public static void main(String[] args) {
SpringApplication.run(SpringBootTest10Application.class, args);
}
}
6、编写controller类测试,以下代码用的官方测试代码
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@RequestMapping("/get")
public boolean get() {
System.out.println("ok");
return useLocalCache;
}
}
7、启动nacos,并在8848端口的nacos页面登录并配置配置
DataID命名格式:${prefix}-${spring.profiles.active}.${file-extension}
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。spring.profiles.active
即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当spring.profiles.active
为空时,对应的连接符-
也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}
file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。
配置结束后发布并启动服务器,然后通过测试接口进行测试,
测试结果如下
当改变配置时,服务器的配置也会跟着变
可以发现在分布式的框架下,在使用Nacos作为服务发现工具时,可以再将它作为配置中心,对所有的配置进行管理,能够很方便的修改配置,并实现动态生效。
参考文档
https://cloud.tencent.com/developer/article/1892015
置中心,对所有的配置进行管理,能够很方便的修改配置,并实现动态生效。
参考文档
https://cloud.tencent.com/developer/article/1892015