一、什么是配置中心

        在微服务架构中,配置中心就是统一管理各个微服务配置文件的服务。把传统的单体项目包拆分成多个微服务后,配置文件也要拆分,每个微服务都要有自己的配置文件。为了统一维护,方便管理,所以出现了配置中心的概念。所有的微服务配置文件都在配置中心中管理和读取,因此,出现了配置中心的概念。提供配置中心的服务有Nacos,Apollo等,这里我们讲解Nacos的配置中心功能。

        配置中心就是一种统一管理各种应用配置的基础服务组件,它将将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去管理配置。

一个合格的配置中心需要满足如下特性:
• 配置项容易读取和修改
• 分布式环境下应用配置的可管理性,即提供远程管理配置的能力
• 支持对配置的修改的检视以把控风险
• 可以查看配置修改的历史记录
• 不同部署环境下应用配置的隔离性

二、nacos 基本配置信息

首先要了解几个 Nacos 的关键信息:

nameSpace:命名空间,可以用来隔离不同的环境,如开发环境,生产环境,测试环境。

其中,public是Nacos默认提供的命名空间,如果不单独配置命名空间,那么默认所有的配置信息都在public命名空间中。

nacos配置试试更新到java注解_nacos配置试试更新到java注解

配置列表

在命名空间中配置好后,在配置列表中就会有几个命名空间的tab。

我们以开发环境dev为例,配置某个微服务的配置文件信息。

nacos配置试试更新到java注解_微服务_02

Data ID:
Data ID是配置项的唯一标识,它的命名是有一定规范的。我们在配置信息时,一定是先有了微服务客户端,根据客户端需求,才在配置中心配置的信息。
Data ID的命名规范是:

spring.application.name-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

其中spring.application.name就是微服务客户端配置文件中配置的服务名称${spring.profiles.active}是配置文件中配置的环境信息。${spring.cloud.nacos.config.file-extension}是微服务客户端配置文件中配置的file-extension信息。这个信息的作用是指定配置中心中配置信息的格式,一般选择yaml格式的。假设微服务客户端服务名叫user-ayan,开发环境为dev。file-extension扩展格式为yaml,则Data ID命名为:user-ayan-dev.yaml。

Group:
组标识,默认DEFAULT_GROUP,可标识不同项目;如:ORDER_GROUP,USER_GROUP …上面讲到的命名空间是用来隔离项目环境的。Group是在同一个项目环境中更细粒度的区分配置项,

三、springBoot nacos 基本配置信息

注意:nacos 配置需要配置到 bootstrap.yml 或 bootstrap.properties 文件中,而不能是application.yml/properties 文件。

nacos配置试试更新到java注解_nacos配置试试更新到java注解_03

如上图所述:Nacos 配置文件必须放入到 bootstrap 文件中,如果放在 application 文件中会出现nacos 连接失败等初始化问题,导致系统无法正常启动。(简单理解为系统已经在加载 Application 配置了,但发现这些配置还没有。)

具体配置:

nacos配置试试更新到java注解_java_04

ext-config[x] 与 shared-configs[x]

ext-config[x] 与 shared-configs[x] 使用方法相同,都包含:data-id、group(默认为字符串DEFAULT_GROUP)、refresh(默认为true) 三个属性。-refresh:是动态刷新,在Nacos修改配置后,服务可以动态感知而无需重启项目。

配置优先级

在不同配置文件中如果存在相同的配置项,优先级高的匹配文件会覆盖优先级低的。
相关配置优先级如下。

nacos配置试试更新到java注解_spring boot_05