0%

Nacos

Nacos-配置管理

1.什么是配置中心

1.1什么是配置

​ 应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数登。

  • 配置是独立于程序的只读变量
    • 配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置
  • 配置伴随应用的整个生命周期
    • 配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行动,比如:启动时需要读取服务的端口号、系统在运行过程中需要读取定时策略执行定时任务登。
  • 配置可以有多种加载方式
    • 常见的有程序内部hard code,配置文件、环境变量、启动参数、基于数据库等。
  • 配置需要治理
    • 同一份程序在不同环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常有不同的配置,所以需要有完善的环境,集群配置管理

1.2什么是配置中心

​ 在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着余,如下图;

配置中心

下图显示了配置中心的功能,配置中心将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去管理。

配置管理

2.Nacos简介

2.1主流配置中心对比

目前市面上用的比较多的配置中心有:Spring Cloud Config、Apollo、Nacos和Disconf等。

由于Disconf不再维护,下面主要对比一下Spring Cloud Config、Config、Apollo和Nacos。

对比项目 Spring Cloud Config Apollo Nacos
配置时推送 支持(Spring Cloud Bus) 支持(HTTP长轮询1s内) 支持(HTTP长轮询1s内)
版本管理 支持(Git) 支持 支持
配置回滚 支持(Git) 支持 支持
灰度发布 支持 支持 不支持
权限管理 支持(依赖Git) 支持 不支持
多集群 支持 支持 支持
多环境 支持 支持 支持
监听查询 支持 支持 支持
多语言 只支持java 主流语言,提供了Open API 主流语言,提供了Open API
配置格式校验 不支持 支持 支持
单机读(QPS) 7(限流所致) 9000 15000
单击写(QPS) 5(限流所致) 1100 1800
3节点读(QPS) 21(限流所致) 27000 45000
3节点读(QPS) 5(限流所致) 3300 5600

​ 从配置中心角度来看,性能方面Nacos的读写性能最高,Apollo次之,Spring Cloud Config依赖Git场景不适合开放大规模自动化运维API。功能方面Apollo最为完善,nacos具有Apollo大部分配置管理功能,而Spring Cloud Config不带运维管理界面,需要自行开发。Nacos的一大优势是整合了注册中心、配置中心功能,部署喝操作相比Apollo都要直观简单,因此它简化了架构复杂度,并减轻运维及部署工作。

2.2Nacos简介

Nacos是阿里的一个开源产品,它是针对微服务架构中心的服务发现、配置管理、服务治理的综合型解决方案

官方介绍是这样的:

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

中文官网地址:https://nacos.io/zh-cn

2.3Nacos特性

Nacos主要提供以下四大功能:

  1. 服务发现于服务健康检查

    Nacos使服务更容易注册,通过DNS或HTTP接口发现其他服务,Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。

  2. 动态配置管理

    动态配置服务允许您在所有环境中以集中喝动态的方式管理所有服务的配置,Nacos消除了在更新配置时重新
    部署应用程序,这使配置的更改更加高效喝灵活。

  3. 动态DNS服务

    Nacos提供基于DNS协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在Nacos上的服务以域名的方式暴露端点,让三方应用方便及时查阅及发现。

  4. 服务和元数据管理

    Nacos能让您从服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略。

    这里动态配置管理的特性说明了Nacos的配置管理能力。

3 Nacos快速入门

3.1 安装Nacos Server

3.1.1 预备环境准备

Nacos依赖java环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置Maven环境,确保是在以下版本环境中安装使用:

1.64 bit OS, 支持Linux/Unix/Mac/Windows,推荐选用Liunx/Unix/Mac。

2.64 bit JDK 1.8+;

3.Maven 3.2.x+;

3.1.2下载源码或者安装包

你可以通过源码喝发行包两种方式来获取Nacos。

从GitHub上下载源码

1
2
3
4
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos clean install -U
ls -al distrbution/target/

下载地址:https://github.com/alibaba/nacos/releases

下载后解压

1
2
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
3.1.3 启动服务

nacos的默认端口号是8848,需要保证8848默认端口没有被其他进程占用

进入安装程序bin目录

Liunx/Unix/Mac启动方式:

1
sh startup.sh -m standalone

启动命令(standalone代表单机模式运行,非集群模式);

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

1
bash startup.sh -m standalon

Windows启动方式:

数据库配置,修改 application.properties 文件数据库配置,其它参数暂不用管,在数据库执行 nacos-mysql.sql 文件初始化;

1
2
3
4
5
6
7
8
9
10
11
#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos123

启动命令:

cmd startup.cmd

或者双击startup.cmd运行文件

启动成功 可通过浏览器访问http:127.0.0.1:8848/nacos 打开如下nacos控制台登录页面

默认账号密码:nacos/nacos登录既可以打开页面

控制台

3.1.4 OPEN API 配置管理测试

启动nacos成功后,可通过nacos提供的http api 验证nacos服务运行是否正常

接下来我们可以通过curl工具来测试nacos的open api:

curl是开发中常用的命令行工具,可以用作HTTP协议测试。

下载地址:https://curl.haxx.se/download.html

下载进入bin目录,进行下边的测试,通过测试可判断nacos是否正常运行

发布配置

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.detaId&group=test&content=HelloWorld"

上边的命令表示向nacos发送一个配置:

获取配置

向nacos发布配置成功,就可以通过客户端nacos获取配置信息,执行下边的命令:

curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.detaId&group=test"

获取配置

通过测试可以发现,可以从nacos获取前边发布的配置:HelloWorld

向nacos发布配置成功,就可以通过客户端nacos获取配置信息,执行下边的命令:

3.1.5关闭服务器

关闭nacos服务的方式如下:

Liunx/Unix/Mac方式:

sh shutdown.sh

Windows方式:

cmd shutdown.cmd

或者双击shutdown.cmd运行文件

3.1.6.外部mysql数据库支持

​ 单机模式时nacos默认使用嵌入式数据库实现数据的存储,若想使用外部mysql存储nacos数据,需要进行一下步骤:

  • 1.安装数据库,版本要求:5.6.5+,mysql8以下

  • 2.初始化mysql数据库,新建nacos-config,数据库初始化文件:${nacoshome}\conf/nacos-mysql.sql

  • 3.修改${nacoshome}/conf/application.proerties文件,怎加支持mysql数据源配置(目前只支持mysql),添加mysql数据源url、用户名和密码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #*************** Config Module Related Configurations ***************#
    ### If use MySQL as datasource:
    spring.datasource.platform=mysql

    ### Count of DB:
    db.num=1

    ### Connect URL of DB:
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user=root
    db.password=root

3.2.Nacos配置入门

3.2.1发布配置

首先在nacos发布配置。

浏览器访问http://127.0.0.1:8848/nacos,打开nacos控制台,并点击菜单配置管理->配置列表:

在Nacos添加如下的配置:

1
2
3
4
5
Data ID:    nacos-simple-deom.yaml
Group : DEFAULT_GROUP
配置格式: YMAL
配置内容: common:
config1: something

Note:注意dataid时以properties(默认的文件扩展名方式)为扩展,这里使用yaml。

第一步:点击新增配置

step_01

第二步:添加配置

step_02

第三步:发布配置

​ 在第二步点击”发布“,如下图,点击确定发布成功.

第四步:查询配置

step_04

3.2.2 nacos客户端获取配置

1)我们需要新增一个名为nacos-simple-deom的项目,坐标如下:

1
2
3
<groupId>com.liyi.nacos</groupId>
<artifactId>macos-simple-demo</artifactId>
<version>1.0-SNAPSHOT</version>

用来实现项目中使用Nacos来实现应用外部化配置

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.2.1</version>
</dependency>

(2)获取外部化配置

新增java执行类,并在执行过程中获取配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.liyi.nacos;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;

import java.util.Properties;

/**
* @author 李毅
* @version V1.0
* @Package com.liyi.nacos
* @date 2020/9/16 16:52
* @Copyright © liyi
*/
public class SimpleDeomMain {
public static void main(String[] args) throws NacosException {
//使用nacos client远程获取nacos服务上的配置信息
// nacso 服务地址
String ServerAddress = "127.0.0.1:8848";
// Data Id
String dataId = "nacos-simple-demo.yaml";
// Group
String group = "DEFAULT_GROUP";
Properties props = new Properties();
props.put("serverAddr", ServerAddress);
ConfigService configService = NacosFactory.createConfigService(props);
// 获取配置,String dataId ,String group, long timeoutMs
String config = configService.getConfig(dataId, group, 5000);
System.out.println(config);

}
}

4 Nacos配置管理基础应用

4.1 Nacos配置管理模型

对于Nacos培训hi管理,通过Namespace、grpup、Data ID能够定位到一个配置集。

配置管理模型

配置集(Data ID)

​ 在系统中,一个配置文件通常就是一个配置集,一个配置集可以包含了系统的各种配置信息,例如,一个配置集可能包含了数据源,线程池、日志级别等配置项。每个配置集都可以定义一个有意义的名称,就是配置集ID即Data ID

配置项

​ 配置项中包含的一个个配置内容就是配置项,它代表一个具体的可配置的参数与其值域,通常以keys value的形式存在。例如我们长配置系统的日志输出级别(logLevel=INFO|WARN|ERROR)就是一个配置项。

配置分组(Group)

​ 配置分组时对配置集进行分组,通过一个有意义的字符串(如Buy或Trade)来表示,不同的配置分组下可以有相同的配置集(Data ID)。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景:可用于区分不同的项目或应用,例如:学生管理系统的配置集可以定义一个group为:STUDENT_GROUP。

命名空间(Namespace)

命名空间(namespace)可用于进行不同环境的配置隔离。例如可以隔离开发环境、测试环境和生产环境,因为它们的配置可能各不相同,或者是隔离不同的用户,不同的开发人员使用同一个nacos管理各自的配置,可通过namespace隔离。不同的命名空间下,可以存在相同名称的配置分组(Group) 或 配置集。

最佳实践

Nacos抽象定义了Namespace、Group、Data ID的概念,具体这几个概念代表什么,取决于我们把它们看成什么,这里推荐给大家一种用法,如下图:

Namespace:代表不同环境,如开发、测试、生产环境。

Group:代表某项目,如XX医疗项目、XX电商项目

DataId:每个项目下往往有若干个工程,每个配置集(DataId)是一个工程的主配置文件

最佳实践

获取某配置集的代码:

获取配置集需要指定:

1、nacos服务地址,必须指定

2、namespace,如不指定默认public

3、group,如不指定默认 DEFAULT_GROUP

4、dataId,必须指定

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
// 初始化配置服务,
String serverAddr = "127.0.0.1:8848";
String namespace = "ee247dde-d838-425c-b371-029dab26232f"; //开发环境
String group = "DEFAULT_GROUP"; //默认组
String dataId = "nacos-simple-demo.yaml";
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
properties.put("namespace", namespace);
ConfigService configService = NacosFactory.createConfigService(properties);
//获取配置,并输出控制台
String content = configService.getConfig(dataId, group, 5000);
System.out.println(content);

看懂即可不用运行。

namespace:ee247dde-d838-425c-b371-029dab26232f

注意:namespace需要指定id。

group:DEFAULT_GROUP

Data Id:nacos-simple-demo.yaml

4.2 命名空间管理

4.2.1 namespace隔离设计

namespace 的设计是 nacos 基于此做多环境以及多租户(多个用户共同使用nacos)数据(配置和服务)隔离的。

  • 从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有开发,测试和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:

命名空间管理

  • 从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示:

命名空间管理

4.2.2 命名空间管理

​ 命名空间(Namespace)是用于隔离多个环境的(如开发、测试、生成),而每个应用在不同环境的同一个配置(如数据库数据源)的值是不一样的。因此,我们应针对企业项目的实际研发流程、环境进行规划。如某公司拥有开发、测试、生产三套环境,那么我们应该正对三个环境分别建立三个namespace。

创建命名空间

建立好所有namespace后,在配置管理与服务模块下所有页面,都会包含用于切换nanmespace(环境)的tab按钮

命名空间切换

如果在编写程序时获取配置集过程中没有感知这个参数的输入,那么nacos统一会使用一个默认的namespace作为输入,nacos-config会使用一个空字符串作为默认的参数来初始化,对应界面上就是public命名空间

Note:namespace为public的一个保留空间,如果您需要创建自己的namespace,不要和public重名,以一个实际业务场景有具体语义的名字来命名,,以免带来字面上不容易区分自己是哪一个namespace

在编写程序获取配置集时,指定的namespace参数一定要填写命名空间ID,而不是名称。

4.2.3 监听查询

​ Nacos提供配置订阅者监听者查询能力,同时提供客户端当前配置MD5校验值,以便帮助用户更好的检查配置变更是否推送到Client端。客户端监听关键代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    configService.addListener(dataId, group, new Listener() {

public Executor getExecutor() {
return null;
}

public void receiveConfigInfo(String s) {
//但配置发生变化时响应
System.out.println(s);
}
});
while (true) {
Thread.sleep(2000);
}
}

4.3 登录管理

Nacos当前版本支持简单的登录功能,默认用户名/密码:nacos/nacos

修改默认用户名/密码方法

  • 生成加密密码

    在入门程序中加入以下依赖:

    1
    2
    3
    4
    5
    6
    <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
    <dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>5.3.3.RELEASE</version>
    </dependency>

    编写PasswordEncoderUtil类,生成加密后的密码,采用BCrypt加密方法在每次生成密码时会随机加盐,所以生成密码可能不一样。

    1
    2
    3
    4
    5
    6
    public class PasswordEncoderUtil {
    public static void main(String[] args) {
    System.out.println(new BCryptPasswordEncoder().encode("123"));

    }
    }

    1.创建用户名或者密码的时候,用指定用户名密码即可。

    将上边程序输出的密码更新到数据库。

    1
    2
    INSERT INTO users(username,password,enabled) VALUES('nacos1','$2a$10$772PbcfWQxsG3XaMyt9WP.fJBQ2gFZSMKufM25FKO7omymjtcnDbS',TRUE);
    INSERT INTO roles (username,role) VALUES('nacos1','ROLE_ADMIN')

    关闭登录功能

    由于部分公司自己开发控制台,不希望被nacos的安全filter拦截。因此nacos支持定制关闭登录功能找到配置文件${nacoshome}/conf/application.properties,替换以下内容即可。

    1
    2
    3
    4
    spring.security.enabled=false
    managenment.security=false
    security.basic.enabled=false
    nacos.security.ignore.urls=/**

    5 Nacos配置管理应用于分布式系统

    5.1 从单体架构到微服务

    5.1.1单体架构

    ​ Web应用程序发展的早期,大部分web工程师将所有的功能模块打包到一起并发在一个web容器中运行,所以有功能模块使用同一个数据库,同时,它还提供API或者UI访问的web模块等。

    单体应用

    ​ 尽管也是模块化逻辑,但是最终它还是会打包并部署为单体应用,这种将所有功能都部署在一个web容器中运行的系统叫做单体架构(也叫:巨石型应用)。

    优点:

    • 开发效率高:模块之间交互采用本地方法调用,并节省微服务之间的交互讨论时间与开发成本。
    • 容易测试:IDE都是为开发单个应用设计、容易测试–在本地就可以启动完整的系统
    • 容易部署:运维成本小,直接打包为一个完整的包,拷贝到web容器的某个目录下即可运行。但是,上述的好处是有条件的,它适用小型简单应用,对于大规模的复杂应用,就会展现出现以下的不足;

    缺点:

    • 复杂性逐渐变高,可维护性逐渐变差:所有业务模块部署在一起,复杂度越来越高,修改时牵一发动全身。

    • 版本迭代速度逐渐变慢:修改一个地方就要将整个应用全部编辑、部署、启动时间过长、回归测试周期过长

    • 阻碍技术创建:若更新技术框架,除非你愿意将系统全部重写,无法实现部分技术更新。

    • 无法按需伸缩:通过冗余部署完整应用的方式来实现水平扩展,无法针对某些业务按需伸缩。

    5.1.2微服务

    ​ 许多大型公司,通过采用微服务架构解决了上述问题。其思路不是开发一个巨大的单体式的应用,而是将应用分解为小的、胡链接的微服务。

    ​ 一个微服务一般完成某个特点的功能,比如订单服务、用户服务等等。每一个微服务都是完整应用,都有自己的业务逻辑和数据库。一些微服务还会发布API给其他微服务和应用客户端使用。

    ​ 比如,根据前面描述系统可能的分解如下:

    微服务

    ​ 每一个业务都使用独立的服务完成,这种微服务架构模式也影响了应用和数据库之间的关系,不像传统多个业务模块共享一个数据库,微服务架构每个服务都有自己的数据库。

    优点:

    • 分而治理之,职责单一;易于开发、理解和维护、方便团队的拆分和管理
    • 可伸缩:能够单独的对指定的服务进行伸缩
    • 局部容易修改,容易替换,容易部署,有利于持续集成和快速迭代
    • 不会受限于任何技术栈

    5.2 分布式应用配置管理

    下面展示了如何通过Nacos集中管理多个服务的配置:

    分布式应用配置

    • 用户通过Nacos Server的控制台集中队多个服务的配置进行管理
    • 各个服务统一从Nacos Server中获取各自的配置,并监听配置的变化

    5.2.1 发布配置

    首先在nacos发布配置,我们规划了两个服务service1、service2,并想队这两个服务的配置进行集中维护。浏览器访问http://127.0.01:8848/nacos,打开nacos控制台,并点击主菜单**配置管理**、**配置列表**

    在Naocs添加如下配置:

    service1

    1
    2
    3
    4
    5
    6
    Namespace: e680b25d-e26a-4812-97f9-3632f2191add # 开发时环境
    Data ID:sevice1.yaml
    Group : TEST_GROUP
    配置格式: YMAL
    配置内容: common:
    name: service1 config

    service2

    1
    2
    3
    4
    5
    6
    Namespace: e680b25d-e26a-4812-97f9-3632f2191add # 开发时环境
    Data ID:sevice2.yaml
    Group : TEST_GROUP
    配置格式: YMAL
    配置内容: common:
    name: service2 config

    5.2.2 创建父工程

    为了规范依赖的版本,在这里创建父工程,指定依赖的版本。

    父工程pom.xml如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.liyi.nacos</groupId>
    <artifactId>nacos-config</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
    <project.build.sourceEnconding>UTF-8</project.build.sourceEnconding>
    <project.reporting.outputEncodeing>UTF-8</project.reporting.outputEncodeing>
    <java-version>1.8</java-version>
    </properties>

    <dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.1.0.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Greenwich.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.1.3.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>
    </dependencies>
    </dependencyManagement>
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>
    </project>

    5.2.3 微服务service1配置

    ​ 本小节,我们将演示如何使用Spring Cloud Alibaba Nacos ConfigSpring Cloud应用中集成Nacos,通过Spring Cloud原生方式快捷获取配置内容。

    spring Cloud是什么:

    Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

    spring Cloud Alibaba Nacos Config是什么:1

    Spring Cloud Alibaba Nacos Discovery 是Spring Cloud Alibaba的子项目,而Spring Cloud Alibaba是阿里巴巴公司提供的开源的基于Spring Cloud的微服务套件合集,它致力于提供微服务开发的一站式解决方案,可以理解为spring cloud是一套微服务开发的标准,spring cloud alibaba与spring cloud Netflix是实现,使用Spring Cloud Alibaba方案,开发者只需要添加一些注解和少量配置,就可以将Spirng Cloud应用

谢谢老板