
上篇介绍了Nacos的服务注册中心的集成实战,通过实战来看,框架集成和服务调用都很简单。在开发的过程中,主要重心还是在业务代码。微服务之前像实现动态配置还是很难的,几乎都是修改配置文件,然后重启服务,这会对线上业务造成不一定程度的影响,动态配置管理就是来解决这个痛点的,那就让我们一起来学习Nocas配置管理集成实战。
实战步骤
Nacos的实战学习,都是依赖官方的文档。
官网地址:https://nacos.io/zh-cn/docs/what-is-nacos.html
集成实战部分主要参考cloud部分:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.htm
新建一个module,命名cloud-nacos-config3377
修改POM文件,添加nacos-config配置管理jar包依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
修改YML文件,添加配置中心server端配置参数,nacos要求有两个配置文件,application.yml和bootstrap.yml。application.yml配置环境信息,bootstrap配置具体信息。两者的关系是bootstrap>application,互相补充。一般在application.yml中配置环境信息,比如dev、test、prod,分别对应开发、测试、生产。
application配置文件,配置开发环境
spring:profiles:active: dev #标识开发环境
bootstrap配置文件,nacos官网明确指出,在boot中配置spring-application-name和nacos-server地址
server:port: 3377spring:application:name: cloud-nacos-configcloud:nacos:discovery:server-addr: 127.0.0.1:8848 #注册中心地址config:server-addr: 127.0.0.1:8848 #配置中心地址file-extension: yaml #配置文件类型group: DEV_GROUP #分组namespace: 78f8aa71-5ff3-4f67-b11c-a009ef0d879c #namespace的Id
编写启动类,没有什么区别
@SpringBootApplication@EnableDiscoveryClientpublic class Application3377 {public static void main(String[] args) {SpringApplication.run(Application3377.class,args);}}
编写业务类,进行动态配置测试。划重点:@RefreshScope实现自动更新
@RestController@RequestMapping("/config")@RefreshScopepublic class ConfigController {@Value("${config.useLocalCache:false}")private boolean useLocalCache;@Value("${config.info}")private String info;@GetMapping("/get")public String get() {String result = "useLocalCache: "+useLocalCache+"\tconfig.info: "+ info;System.out.println(result);return result;}}
Nacos控制台,配置如下

测试结果,到此集成实战结束

Nacos控制台详解
控制台官方手册地址:https://nacos.io/zh-cn/docs/console-guide.html

配置管理立体结构图,nacos的概念做了转化,方便理解和记忆

配置管理详解,Nacos支持Namespace和Group配置,nacos对应应用环境、group对应集群环境、data_id是配置文件名,支持的yaml、text、json、xml、html、properties

namespace命名空间介绍:默认是public,保留空间。在实际服务中如果没有指定namespace,默认都是public。实际中用作环境的隔离

group分组介绍:默认是DEFAULT_GROUP,实际用作集群(服务分组)的隔离

DataID详细说明,划重点:实际开发中spring-profiles-active不能为空;文件格式要严格按照nacos支持的六大类型,比如yaml,不要写成yml,nacos系统不认
Data ID:数据格式是${prefix}-${spring-profiles.active}.${file-extension}${prefix}:对应服务名称,即:spring.application.name属性的值${spring-profiles.active}:对应开发环境,即:spring.profiles.active属性的值${file-extension}:对应配置文件的格式类型,即:nacos支持的六大类型
回复 “cloud”获取源码

(shishuai860505),拉大家进群,一起交流学习
认真传播技术,真诚结交朋友




