spring cloud alibaba小白教程系列之(二)-Nacos配置中心
前言
前一篇文件已经介绍了nacos做为服务的注册中心的简单搭建,其实当我们下载安装了nacos以后,就不需要创建nacos-server模块了,这里做一下说明。
接下来我们来看一下nacos作为配置中心的简单搭建与使用。
新建module
新建nacos-config模块,不会的小伙伴可以参考我之前写的文章。
修改pom
增加pom配置:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
配置yml
nacos同spring cloud一样,在项目初始化的时候,要先保证从配置中心读取配置,读取配置完成之后,才能保证项目的正常使用。spring boot中配置文件的加载时存在优先级顺序,bootstrap的优先级最高,相当于全局的。
在中nacos作为配置中心时,要求把配置信息写到bootstrap的配置文件中。这里可以查看官网的说明。(spring cloud alibaba官网地址)
bootstrap.yml
server:
port: 7001
spring:
application:
name: nacos-config
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848 # 配置中心地址
file-extension: yaml # 配置文件格式
discovery:
server-addr: 127.0.0.1:8848 # 服务注册中心
同时配置application.yml
spring:
profiles:
active: develop
配置主启动类
配置NacosConfigApplication.java主启动类,增加注解@EnableDiscoveryClient:
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConfigApplication.class, args);
}
}
增加业务测试类
增加获取配置信息的controller测试类,TestConfigController:
@RestController
@RefreshScope // nacos动态刷新
@RequestMapping("/config")
public class TestConfigController {
@Value("${test.info}")
private String info;
@GetMapping("/get")
public String getConfig() {
return "获取nacos配置信息,info=" + info;
}
}
启动服务
先启动nacos的服务,然后在启动nacos-config模块:然后访问,http://localhost:7001/config/get 地址,返回结果如下图所示,就证明从nacos配置中心获取配置信息已经成功了。
配置动态刷新
修改配置文件中的信息,重新访问:http://localhost:7001/config/get 地址,返回结果如下图所示,就证明从nacos配置中心获取配置信息已经成功了。
配置文件命名规则
❝规则:
${spring.application.name}-${spring.profile.active}.${file-extension}❞
spring.applicatin.name和file-extension对应bootstarp.yml中的配置。file-extension支持的格式:txt、yaml、json、xml、html、properties。spring.profile.active对应application.yml中的配置,这个配置的作用值区分环境用的。
nacos的命名空间
❝❞
- 命名空间规则:
namespace + group + dataId
默认情况:
namespace=public, group = DEFAULT_GROUP 默认 cluster时DEFAULT
❝nacos的默认命名空间时public, namespace主要用来实现隔离。
例如:我们有三个环境:开发、测试、生产, 我们就可以创建三个namespace,不同的namespace之间时隔离的。
❞
❝group默认时
❞DEFAULT_GROUP,group可以把不同的微服务划分到同一个组里面。
❝service 就是微服务,一个service可以包含多个cluster(集群),nacoa默认cluster是DEFAULT,cluster是对指定微服务的一个虚拟划分。
例如:容灾,将service微服务部署在不同的机房(例如北京机房,深圳机房),这时候就可以给北京机房的serivce微服务起一个集群名称(BJ),给深圳机房的service微服务起一个集群名称(SZ),还可以尽量让同一个机房的微服务之间互相调用,来提升性能。
❞
❝instance就是微服务的实例。
❞
小结
具体的配置文件可以按照nacos的命名空间规则自己实际试验,我这里就不过多说明了,操作起来还是非常简单的,nacos的操作平台操作起来也非常方便。
源码地址
总结
至此,nacos作为配置中心的简单教程就搭建完成了,还是比较简单(相对spring cloud config来说),个人认为nacos集服务中心和配置中心于一体还是很厉害的,为我们开发省去了不少力气,而且作为服务中心或者是配置中心基本都是基于自身提供的平台来操作和设置,大大降低了学习成本和开发成本。
spring cloud alibaba小白系列搭建教程: