Nacos统一配置中心
SpringCloud官网在介绍Nacos的时候说过,Nacos既是注册中心又是配置中心,作为配置中心,Nacos可以简单的实现,动态管理配置文件的功能。并且Nacos的动态管理不会像Consul一样繁琐。
简单样例
下面我们以NacosClient为例,实际的业务中并没有这个概念,现实中的就是我们一个一个的微服务。
1、首先我们创建一个在我们的父项目中创建一个SpringBoot应用。
2、我们先写一个Controller 模拟业务。
1 | package com.bestrookie.controller; |
可以看到,我们这个业务中有一个userName的属性,是从配置文件中获取的,如果使用传统配置文件方式的话,每次修改配置文件,就要重启服务,这样十分的不方便。
3、在Nacos的启动页面,点击配置列表,右上角 + 号
4、根据自己的需要填写内容
注意:文件名称必须带着相关的环境
然后回到项目中。
5、添加所需要的依赖
因为是Nacos管理,在Nacos中寻找配置文件,所以我们这个服务首先就要注册到Nacos上。所以需要Nacos Client依赖,实现配置管理的功能还需要 Nacos Config依赖,所以需要添加两个依赖
1 | <dependency> |
6、编写yaml配置。
有些必要的配置需要在yaml中编写,比如Nacos的注册,如果不注册,服务要怎么去Nacos寻找自己的配置,并且这个yaml主要起的是引导作用,引导我们的服务去Nacos上找到自己的配置文件,并且这个配置文件的名字必须是bootstrap.yaml,否则,服务会报错。
1 | spring: |
7、在我们的Controller上添加注解开启动态管理配置文件功能。
@RefreshScope
配置中心讲解
统一配置中心
dataId:代表完整配置文件名称 ==》 spring.cloud.nacos.config.name
完整配置文件名称 = prefix(前缀)+(env)环境+file-extension(后缀)
所以还有一种方式配置我们的而文件名
1 | spring.cloud.nacos.config.prefix= |
这两种方式自己喜欢哪个用哪个
注意:dataId作为唯一表示,一旦创建不可修改,如果写错了,对不起只能删掉重新创建。
统一配置中心Nacos三个重要概念
1、命名空间:namespace 默认Nacos安装完成之后会有一个默认命名空间,这个默认命名空间的名字为 public
当然我们也可以自己创建
创建完成后,我们可以在页面看到
站在项目的角度隔离每一个项目配置文件,这样便于管理 ,当然如果配置了命名空间,那么需要在配置文件中配置命名空间的名字
1 | spring.cloud.nacos.config.namespace=命名空间的id |
2、组:group 默认nacos 不设置group名称的时候,默认组名为 DEFAULT_GROUP
站在项目中的每一个服务的角度,隔离同一个项目的不同服务的配置
3、文件名:dataId 获取一个配置文件的唯一标识