微服务之配置管理中心(Nacos)

前言

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:ee5be4cc-a469-4833-9840-3cffd2e88382

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:f2a544ae-f730-42eb-bb12-a69d10d47a6e

这时我们就需要1个可以集中保存微服务配置的配置中心;

一、配置中心概念

我们可以提取每1个微服务架构中实例的经常变化的配置项,集中保存到1个配置中心里;

微服务之配置管理中心(Nacos)

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:59826c75-d1f0-46d4-9d36-f68448ef3a0f

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:71d7f50f-7de1-4663-ae1a-d13584d75e9a

二、Nacos配置中心

Nacos不仅可以作为微服务架构的服务注册中心,还能作微服务的集中配置管理中心;

单机启动Nacos

startup.cmd -m standalone

1.添加Nacos配置

微服务之配置管理中心(Nacos)

2.拉取Nacos配置

如果微服务想要拉取Nacos中管理的配置项与本地的application.yml配置项进行合并。

需要在SpringBoot项目中引入了1种新的配置文件bootstrap.yml配置文件;

bootstrap.yml会在application.yml之前被读取,而且其内容优先级高于application.yaml,不会被application.yaml覆盖;

2.1.引入Nacos客户端依赖

引入连接Nacos配置管理中心的客户端依赖;

<dependency>
     <groupId>com.alibaba.cloudgroupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>

2.2. 添加bootstrap.yml

在user-service中添加一个bootstrap.yml文件,当项目启动时可以连接到Nacos配置管理中心;

微服务之配置管理中心(Nacos)

${spring.application.name}+${spring.cloud.nacos.config.file-extension}作为配置文件的Data ID来读取Nacos的配置。

spring:
  application:
    name: user-service
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 # nacos 配置中心地址
        file-extension: yaml  # 文件扩展名

2.3.读取配置信息

读取从Nacos配置中心拉取到的配置信息;

微服务之配置管理中心(Nacos)

3.配置热更新

当Nacos配置管理中心的配置项修改之后,不重启SpringBoot的前提下进行配置热更新;

3.1.局部更新

微服务之配置管理中心(Nacos)

3.2.全局更新

3.2.1.实例类

@Configuration注解标注的类,实例化出来的是1个动态代理对象,不能被SpringMVC直接序列化成json数据响应给前端;

微服务之配置管理中心(Nacos)

引入实体类

微服务之配置管理中心(Nacos)

4.多环境配置文件

Nacos也支持了对同1服务进行不同环境的个性配置;

4.1.添加Nacos环境

微服务之配置管理中心(Nacos)

4.2.配置SpringBoot

通过配置文件指定SpringBoot项目启动时,拉取哪1套环境配置?

Nacos配置中心的客户端会以bootstrap.yml中配置name+active+file-extension作为键,去Nacos配置拉取配置项;

4.3. 配置文件的优先级

当Nacos、微服务本地的配置文件,同时存在且属性相时,优先级有高低之分:

微服务之配置管理中心(Nacos)

5.配置环境隔离

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:dcf63e93-77aa-4260-8ac4-5e03175b3ae4

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:926a3ad2-6f6c-45e7-b891-4b0f62cd0e14

微服务之配置管理中心(Nacos)

5.1.新增命名空间

Nameapace其实一个配置环境的集合,接下来创建2个环境;

微服务之配置管理中心(Nacos)

5.2.创建配置文件

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:b30f4c96-c7dd-4430-afe9-aa9939a429be

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:32b21d10-0dae-47eb-89e5-4e002ebb0e43

public命名空间

微服务之配置管理中心(Nacos)

dev命名空间

微服务之配置管理中心(Nacos)

test命名空间

微服务之配置管理中心(Nacos)

5.3.读取命名空间中的配置信息

<span>&#x4FEE;&#x6539;user-service&#x670D;&#x52A1;&#x7684;</span>配置文件 bootstrap.yml读取指定的namespace 、group、data id

spring:
  application:
    name: user-service
 profiles:
   active: dev
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 # nacos 配置中心地址
        file-extension: yaml  # 文件扩展名
        namespace: 13c7a5e5-8099-4318-b2f8-9992b23ba454  #指定namespace的id
        group: DEFAULT_GROUP # 指定组名

6.Nacos集群

Nacos作为服务注册中心还作为服务配置中心,如果Nacos宕机整个微服务架构就会出现服务雪崩;

在生产环境中为了确保Nacos服务的高可用,我们会Nacos集群,Nacos集群共享1台数据库确保服务注册中心还作为服务配置中心的数据共享;

微服务之配置管理中心(Nacos)

参考

Original: https://www.cnblogs.com/sss4/p/16414980.html
Author: Martin8866
Title: 微服务之配置管理中心(Nacos)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/562583/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球