1.在Nacos配置中心使用
正式文件:cloud Alibaba/wiki/nacos config
Nacos为存储配置和其他元数据提供了密钥/值存储,并为分布式系统的外部化配置提供了服务器端和客户端支持。Spring Cloud Alibaba Nacos Config允许Nacos服务器集中管理Spring Cloud应用程序的外部属性配置。
维护2。及时性3。安全性
Springcloud config比较
三大优点:
Springcloud config大多数场景都与git一起使用,动态更改需要依赖Spring Cloud Bus消息总线通过所有客户端更改。springcloud config不提供可视化界面。nacos config使用长轮询更新配置,如果配置发生变化,通知供应商的过程非常简单。
快速入门
准备配置,在nacos服务器上创建新的nacos con
最佳实践:
Namespace:指开发、测试、生产环境等多种环境。
组:指XX医疗项目、XX电子商务项目等项目
DataId:每个项目下通常有多个工程(微服务)。每个配置集(DataId)如下所示
项目(微服务)的主配置文件
启动权限:修改a
构建Nacos-config服务
通过Nacos服务器和spring-cloud-starter-Alibaba-nacos-config动态更改配置
引进依赖
dependencygroupidcom . Alibaba . cloud/groupidartifactidspring‐cloud‐starter‐Alibaba‐nacos‐
Nacos config
#配置中心地址
‐addr=127.0.0.1:8848
# dataid是YAML的文件扩展名配置方法
# ` $ {}。$ {文件‐扩展3360属性} `
‐扩展=YAML
#profile粒度配置“$ { }‐$ { profile }”。$ { file‐extension 3360 properties } `
ode>启动服务,测试微服务是否使用配置中心的配置
@SpringBootApplication
public class NacosConfigApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = S, args);
String userName = a().getProperty("common.name");
String userAge = a().getProperty("common.age");
Sy("common name :"+userName+"; age: "+userAge);
}
}
Config相关配置
Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是DEFAULT_GROUP
支持配置的动态更新
@SpringBootApplication
public class NacosConfigApplication {
public static void main(String[] args) throws InterruptedException {
ConfigurableApplicationContext applicationContext = S, args);
while(true) {
//当动态配置刷新时,会更新到 Enviroment中,因此这里每隔一秒中从Enviroment中获取配置
String userName = a().getProperty("common.name");
StringuserAge= a().getProperty("common.age");
Sy("common name :" + userName + "; age: " + userAge);
TimeUnit.SECONDS.sleep(1);
}
}
}
ps:除了默认的配置文件, 其他dataId都要加上后缀
支持profile粒度的配置
spring cloud starter alibaba nacos config 在加载配置的时候,不仅仅加载了以dataid 为${}.${file-extension:properties} 为前缀的基础配置,还加载了dataid为
${}-${profile}.${file-extension:properties} 的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以通过Spring 提供的 ${} 这个配置项来配置。
1 =dev
profile 的配置文件 大于 默认配置的文件。并且形成互补
ps:只有默认的配置文件, 才会应用profile
支持自定义 namespace 的配置
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
在没有明确指定 ${} 配置的情况下, 默认使用的是 Nacos 上 Public 这个namespace。如果需要使用自定义的命名空间,可以通过以下配置来实现:
1 =71bb9785‐231f‐4eca‐b4dc‐6be446e12ff8
支持自定义 Group 的配置
Group是组织配置的维度之一。通过一个有意义的字符串(如Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用
DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和MQ_topic 配置。
在没有明确指定 ${} 配置的情况下,默认是DEFAULT_GROUP 。如果需要自定义自己的Group,可以通过以下配置来实现:
1 =DEVELOP_GROUP
支持自定义扩展的 Data Id 配置
Data ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置
集,每个配置集都可以被一个有意义的名称标识。Data ID 通常采用类 Java 包(如 com.)的命名规则保证全局唯一性。此命名规则非强制。
通过自定义扩展的 Data Id 配置,既可以解决多个应用间配置共享的问题,又可以支持一个应用有多个配置文件。
# 自定义 Data Id 的配置
#不同工程的通用配置 支持共享的 DataId
[0].data‐id= common.yaml
[0].group=REFRESH_GROUP
[0].refresh=true
# config external configuration
# 支持一个应用多个 DataId 的配置 一定要加扩展名
[0].data‐id=ext‐config‐common01.properties
[0].group=REFRESH_GROUP
[0].refresh=true
[1].data‐id=ext‐config‐common02.properties
[1].group=REFRESH_GROUP
[1].refresh=true
配置的优先级
Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力从 Nacos 拉取相关的配置。
A: 通过 支持多个共享 Data Id 的配置
B: 通过 [n].data-id 的方式支持多个扩展 Data Id 的配置
C: 通过内部相关规则(应用名、应用名+ Profile )自动生成相关的 Data Id 配置当三种方式共同使用时,他们的一个优先级关系是:A < B < C
优先级从高到低:
- nacosconfig 精准配置
- nacoscon 同工程不同环境的通用配置
- extconfig: 不同工程 扩展配置
- shareddataids 不同工程通用配置
@RefreshScope
@Value注解可以获取到配置中心的值,但是无法动态感知修改后的值,需要利用@RefreshScope注解
@RestController
@RefreshScope
public class TestController {
@Value("${common.age}")
private String age;
@GetMapping("/common")
public String hello() {
return age;
}
}
学习更多JAVA知识可关注微信公众号“老周扯IT”
1.《【applicationisinterrupted】《Alibaba微服务组件Nacos配置中心用户指南》》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【applicationisinterrupted】《Alibaba微服务组件Nacos配置中心用户指南》》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2514702.html