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

**

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

**
目录:

一、Nacos 配置管理-应用于分布式系统-微服务创建

1.1 发布配置 ( nacos-1.1.3 )

1.2 打开 idea 创建一个父 Maven 工程 nacos_config 工程,和两个子模块(service1, service2 )。

1.3 在 父工程的 pom.xml 配置文件中导入依赖

1.4 新增 service1, service2 子工程(子模块)

1.5 在子工程 service1, service2 的 pom.xml 文件中加入依赖

1.6 创建 service1, service2 子工程的配置文件 bootstrap.yml

1.7 创建 springboot 启动类 Service1BootStrap.java, Service2BootStrap.java

1.8 分别启动两个测试类的运行 main() 方法

二、Nacos 配置管理-应用于分布式系统-微服务读取配置

2.1 修改 service1 子模块的启动类 Service1BootStrap.java 动态获取配置信息。

2.2 启动 nacos 服务( /bin/startup.cmd ) 浏览器访问:http://127.0.0.1:8848/nacos

2.3 同样,修改 service2 子模块的启动类 Service2BootStrap.java

2.4 启动 nacos 服务( /bin/startup.cmd )

三、Nacos 配置管理-应用于分布式系统-自定义扩展Data ID

3.1 打开 nacos 控制台,并点击菜单 配置管理 --> 配置列表 --> dev

3.2 修改 bootstrap.yml 配置文件,添加扩展 DataId 配置

3.3 修改 Service1BootStrap.java 启动类,添加 动态获取配置方法 getConfig2()

3.4 浏览器地址栏输入:http://localhost:56010/configs2

四、Nacos 配置管理-应用于分布式系统-配置优先级

4.1 登录 http://127.0.0.1:8848/nacos 修改配置,添加 age 内容,测试 DataId 优先级。

4.2 修改 bootstrap.yml 配置文件,添加注释

4.3 启动 nacos 服务 (运行启动类 )

4.4 浏览器地址栏输入:http://localhost:56010/configs2 测试查看优先级

一、Nacos 配置管理-应用于分布式系统-微服务创建

1.1 发布配置 ( nacos-1.1.3 )

首先在 nacos 发布配置,规划两个服务 service1, service2,
并且对这两个服务的配置进行集中维护。启动 nacos 服务(  /bin/startup.cmd  )
浏览器访问:http://127.0.0.1:8848/nacos 1)打开控制台,先创建 3 个命名空间 namespace 
命名空间 namespace 
--> 新建命名空间 namespace 
--> 命名空间名: dev描述:开发环境
--> 确定。命名空间 namespace 
--> 新建命名空间 namespace 
--> 命名空间名: pro描述:生产环境
--> 确定。命名空间 namespace 
--> 新建命名空间 namespace 
--> 命名空间名: test描述:测试环境
--> 确定。

在这里插入图片描述

在这里插入图片描述

2)打开 nacos 控制台,并点击菜单 配置管理 --> 配置列表 --> dev :
添加如下配置:	service1namespace 	: dev  
Data ID		: service1.yaml
Group		: TEST_GROUP  
配置模式	:YAML
配置内容	:common:name: service1 config--dev 开发环境(注意:配置内容,遵循 yaml 文件格式,
: 后要有空格,缩进不能用 Tab键 缩进,两个空格缩进就行 )namespace 	: pro #生产环境 
Data ID		: service2.yaml
Group		: TEST_GROUP  #测试组
配置模式	:YAML
配置内容	:common:name: service2 config--pro 生产环境

在这里插入图片描述

在这里插入图片描述

1.2 打开 idea 创建一个父 Maven 工程 nacos_config 工程,

和两个子模块( service1, service2  )。--> idea 
--> File 
--> New Project 
--> Maven 
--> Groupld : ( djh.it )Artifactld : ( nacos_config )Version : 1.0-SNAPSHOT
--> Next 
--> Project name: ( nacos_config )Project location: ( C:\java-test\idea2019\nacos_config )
--> Finish(父工程不编写代码,可以删除 src 目录)

1.3 在 父工程的 pom.xml 配置文件中导入依赖

<?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>djh.it</groupId><artifactId>nacos_config</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><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><!-- C:\java-test\idea2019\nacos_config\pom.xml -->	

1.4 新增 service1, service2 子工程(子模块),

创建两个子模块:--> 右键 nacos_config 父工程
--> Modules 
--> Maven 
--> Groupld : ( djh.it )Artifactld : ( service1 )Version : 1.0-SNAPSHOT
--> Next 
--> Module name: ( service1 )Content root : (  C:\java-test\idea2019\nacos_config\service1 )Module file location: (  C:\java-test\idea2019\nacos_config\service1 )
--> Finish--> 右键 nacos_config 父工程
--> Modules 
--> Maven 
--> Groupld : ( djh.it )Artifactld : ( service1 )Version : 1.0-SNAPSHOT
--> Next 
--> Module name: ( service1 )Content root : ( C:\java-test\idea2019\nacos_config\service2 )Module file location: ( C:\java-test\idea2019\nacos_config\service2 )
--> Finish

1.5 在子工程 service1, service2 的 pom.xml 文件中加入依赖:

	<?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"><parent><artifactId>nacos_config</artifactId><groupId>djh.it</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>service1</artifactId><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project><!-- C:\java-test\idea2019\nacos_config\service1\pom.xml -->
		<?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"><parent><artifactId>nacos_config</artifactId><groupId>djh.it</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>service2</artifactId><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project><!-- C:\java-test\idea2019\nacos_config\service2\pom.xml -->

1.6 创建 service1, service2 子工程的配置文件 bootstrap.yml

##  C:\java-test\idea2019\nacos_config\service1\src\main\resources\bootstrap.ymlserver:port: 56010  #启动端口 命令行注入spring:application:name: service1cloud:nacos:config:server-addr: 127.0.0.1:8848  #配置中心地址file-extension: yaml  #dataid 的名称是 application 的 name 加 file-extension 名称 :service1.yamlnamespace: eae273b2-9298-4b99-b4aa-a3d5ea5df089  #开发环境group: TEST_GROUP  #测试组
##  C:\java-test\idea2019\nacos_config\service2\src\main\resources\bootstrap.ymlserver:port: 56020  #启动端口 命令行注入spring:application:name: service2cloud:nacos:config:server-addr: 127.0.0.1:8848  #配置中心地址file-extension: yaml  #dataid 的名称是 application 的 name 加 file-extension 名称 :service2.yamlnamespace:2ee539a7-ad76-4213-a90f-30fa1cc57c70  # pro 生产环境  ( nacos-1.1.3 )group: TEST_GROUP  #测试组

1.7 创建 springboot 启动类 Service1BootStrap.java, Service2BootStrap.java

/***  C:\java-test\idea2019\nacos_config\service1\src\main\java\djh\it\nacos\service1\Service1BootStrap.java**  2024-3-21 springboot 启动类 **/package djh.it.nacos.service1;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@RestController
public class Service1BootStrap {public static void main(String[] args) {SpringApplication.run(Service1BootStrap.class, args);}//通过 @Value 注解读取配置信息@Value("${common.name}")private String config1;@GetMapping("/configs")public String getConfigs(){//读取配置信息return config1;}//访问地址:浏览器地址栏输入:http://localhost:56010/configs  // 输出:service1 config--dev 开发环境
}
	
/***  C:\java-test\idea2019\nacos_config\service2\src\main\java\djh\it\nacos\service2\Service2BootStrap.java**  2024-3-21 springboot 启动类 **/package djh.it.nacos.service2;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@RestController
public class Service2BootStrap {public static void main(String[] args) {SpringApplication.run(Service2BootStrap.class, args);}//通过 @Value 注解读取配置信息@Value("${common.name}")private String config2;@GetMapping("/configs")public String getConfigs(){//读取配置信息return config2;}//访问地址:浏览器地址栏输入:http://localhost:56020/configs   // 输出:service2 config--pro 生产环境
}

1.8 分别启动两个测试类的运行 main() 方法,

浏览器地址栏输入:http://localhost:56010/configs
输出:service1 config–dev 开发环境

浏览器地址栏输入:http://localhost:56020/configs
输出:service2 config–pro 生产环境

在这里插入图片描述

在这里插入图片描述


二、Nacos 配置管理-应用于分布式系统-微服务读取配置

2.1   修改 service1 子模块的启动类 Service1BootStrap.java 动态获取配置信息。
<a name="anchor02-1"></a>

/***  C:\java-test\idea2019\nacos_config\service1\src\main\java\djh\it\nacos\service1\Service1BootStrap.java**  2024-3-21 springboot 启动类 **/package djh.it.nacos.service1;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.ConfigurationWarningsApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@RestController
public class Service1BootStrap {public static void main(String[] args) {SpringApplication.run(Service1BootStrap.class, args);}// 注入配置文件上下文@Autowiredprivate ConfigurableApplicationContext applicationContext;//通过 @Value 注解读取配置信息@Value("${common.name}")private String config1;@GetMapping("/configs")public String getConfigs(){//读取配置信息
//        return config1;//动态获取配置信息return applicationContext.getEnvironment().getProperty("common.name");}//访问地址:浏览器地址栏输入:http://localhost:56010/configs  // 输出:service1 config//访问地址:浏览器地址栏输入:http://localhost:56010/configs  // 输出:service1 config 111111
}
2.2  启动 nacos 服务(  /bin/startup.cmd  )	浏览器访问:http://127.0.0.1:8848/nacos 

打开 nacos 控制台,并点击菜单 配置管理 --> 配置列表 --> dev 
把 service1.yaml 进行【编辑】,内容改变两次
浏览器访问:http://localhost:56010/configs  查看获取参数变化。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3 同样,修改 service2 子模块的启动类 Service2BootStrap.java

/***  C:\java-test\idea2019\nacos_config\service2\src\main\java\djh\it\nacos\service2\Service2BootStrap.java**  2024-3-21 springboot 启动类 **/package djh.it.nacos.service2;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@RestController
public class Service2BootStrap {public static void main(String[] args) {SpringApplication.run(Service2BootStrap.class, args);}// 注入配置文件上下文@AutowiredConfigurableApplicationContext applicationContext;//通过 @Value 注解读取配置信息@Value("${common.name}")private String config2;@GetMapping("/configs")public String getConfigs(){
//        //读取配置信息
//        return config2;//动态获取配置信息return applicationContext.getEnvironment().getProperty("common.name");}//访问地址:浏览器地址栏输入:http://localhost:56020/configs   // 输出:service2 config//访问地址:浏览器地址栏输入:http://localhost:56020/configs   // 输出:service2 config 22
}
2.4  启动 nacos 服务(  /bin/startup.cmd  )	浏览器访问:http://127.0.0.1:8848/nacos 

打开 nacos 控制台,并点击菜单 配置管理 --> 配置列表 --> pro 
把 service2.yaml 进行【编辑】,内容改变两次
浏览器访问:http://localhost:56020/configs  查看获取参数变化。	

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


三、Nacos 配置管理-应用于分布式系统-自定义扩展 dataid

3.1  打开 nacos 控制台,并点击菜单 配置管理 --> 配置列表 --> dev :
添加如下自定义扩展 Data ID 配置:	

		namespace 	: dev  Data ID		: ext-config-common01.propertiesGroup		: DEFAULT_GROUP  配置模式	:Properties配置内容	:common.age=18common.address=beijingnamespace 	: dev  Data ID		: ext-config-common02.propertiesGroup		: GLOBALE_GROUP  配置模式	:Properties配置内容	:common.birthday=1990-8-8	namespace 	: dev  Data ID		: ext-config-common03.propertiesGroup		: REFRESH_GROUP  配置模式	:Properties配置内容	:common.fullname=段子手168

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.2   修改 bootstrap.yml 配置文件,添加扩展 DataId 配置

##  C:\java-test\idea2019\nacos_config\service1\src\main\resources\bootstrap.ymlserver:port: 56010  #启动端口 命令行注入spring:application:name: service1  #spring应用名cloud:nacos:  # nacos作为注册中心的配置项,对应nacosDiscoveryProperties配置类config:server-addr: 127.0.0.1:8848  # nacos服务器地址file-extension: yaml  #dataid 的名称是 application 的 name 加 file-extension 名称 :service1.yaml        namespace: b75c342f-8aeb-4f5a-a1d3-21f0738d7960  # dev开发环境(nacos-1.1.3)group: TEST_GROUP  # 测试组# 扩展的 DataId 配置 # 1.Data Id 在默认的组 DEFAULT_GROUP,不支持配置的动态刷新: common.age=18  common.address=beijing ext-config[0]:data-id: ext-config-common01.properties# 2.Data Id 不在默认的组,不支持动态刷新:  common.birthday=1990-8-8 ext-config[1]:data-id: ext-config-common02.propertiesgroup: GLOBALE_GROUP  # 全局组# 3.Data Id 既不在默认的组,也支持动态刷新: common.fullname=段子手168ext-config[2]:data-id: ext-config-common03.propertiesgroup: REFRESH_GROUP  # 发布组refresh: true  # 动态刷新# 自定义共享 DataId 配置,只支持 DEFAULT_GROUP 分组
#        shared-dataids: ext-config-common01.properties, ext-config-common03.properties, ext-config-common03.properties
#        refreshable: ext-config-common01.properties
3.3   修改 Service1BootStrap.java 启动类,添加 动态获取配置方法 getConfig2()

/***  C:\java-test\idea2019\nacos_config\service1\src\main\java\djh\it\nacos\service1\Service1BootStrap.java**  2024-3-21 springboot 启动类 **/package djh.it.nacos.service1;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@RestController
public class Service1BootStrap {public static void main(String[] args) {SpringApplication.run(Service1BootStrap.class, args);}// 注入配置文件上下文@Autowiredprivate ConfigurableApplicationContext applicationContext;//通过 @Value 注解读取配置信息@Value("${common.name}")private String config1;@GetMapping("/configs")public String getConfigs(){//读取配置信息
//        return config1;//动态获取配置信息return applicationContext.getEnvironment().getProperty("common.name");}//访问地址:浏览器地址栏输入:http://localhost:56010/configs  // 输出:service1 config//访问地址:浏览器地址栏输入:http://localhost:56010/configs  // 输出:service1 config 111111@GetMapping(value = "/configs2")public String getConfigs2(){//读取配置信息String name = applicationContext.getEnvironment().getProperty("common.name");String age = applicationContext.getEnvironment().getProperty("common.age");String address = applicationContext.getEnvironment().getProperty("common.address");String birthday = applicationContext.getEnvironment().getProperty("common.birthday");String fullname = applicationContext.getEnvironment().getProperty("common.fullname");//动态获取配置信息return name+"+"+age+"+"+address+"+"+birthday+"+"+fullname;
//        return age+"+"+address+"+"+birthday+"+"+fullname;//访问地址:浏览器地址栏输入:http://localhost:56010/configs2  // 输出:service1 config+18+beijing+1990-8-8+段子手168//如果是自定义共享 DataId 配置,只支持 DEFAULT_GROUP 分组//访问地址:浏览器地址栏输入:http://localhost:56010/configs2  // 其他分组会输出 null 值,输出:service1 config+18+beijing+null+null}}

3.4 浏览器地址栏输入:http://localhost:56010/configs2

// 输出:service1 config+18+beijing+1990-8-8+段子手168

在这里插入图片描述


四、Nacos 配置管理-应用于分布式系统-配置优先级

4.1 登录 http://127.0.0.1:8848/nacos 修改配置,添加 age 内容,测试 DataId 优先级。
<a name="anchor04-1"></a>
	ext-config-common01.properties common.age=18common.address=beijingext-config-common03.properties	common.fullname=djhcommon.age=20service1.yaml	common:name: service1 configage: 30
4.2 修改 bootstrap.yml 配置文件,添加注释
<a name="anchor04-2"></a>
##  C:\java-test\idea2019\nacos_config\service1\src\main\resources\bootstrap.yml## bootstrap.yml 配置文件加载顺序优先于 application.yml 配置文件。
server:port: 56010  #启动端口 命令行注入spring:application:name: service1  #spring应用名cloud:nacos:  # nacos作为注册中心的配置项,对应nacosDiscoveryProperties配置类config:
#        enabled: false  # 关闭配置# 1) 通过 application 的 name 加 file-extension 后缀名称 :service1.yaml 配置的 DataId 优先级最高。# server-addr: 127.0.0.1:8849, 127.0.0.1:8850, 127.0.0.1:8851  #配置中心地址server-addr: 127.0.0.1:8848  # nacos服务器地址file-extension: yaml  #dataid 的名称是 application 的 name 加 file-extension 名称 :service1.yaml# namespace: c3f73970-2910-4fef-b014-75b37971ed26  #开发环境(nacos-2.2.2, error)namespace: b75c342f-8aeb-4f5a-a1d3-21f0738d7960  # dev开发环境(nacos-1.1.3)group: TEST_GROUP  #测试组# 2)扩展的 DataId 配置 优先级次之。config external configuration# 1.Data Id 在默认的组 DEFAULT_GROUP,不支持配置的动态刷新: common.age=18  common.address=beijing # 优先级低于 ext-config[1]  ext-config[2]ext-config[0]:data-id: ext-config-common01.properties# 2.Data Id 不在默认的组,不支持动态刷新:  common.birthday=1990-8-8 # 优先级高于 ext-config[0]ext-config[1]:data-id: ext-config-common02.propertiesgroup: GLOBALE_GROUP  #全局组# 3.Data Id 既不在默认的组,也支持动态刷新: common.fullname=djh # 优先级高于 ext-config[0] 和 ext-config[1]ext-config[2]:data-id: ext-config-common03.propertiesgroup: REFRESH_GROUP  #发布组refresh: true  #动态刷新# 3)自定义共享 DataId 配置,只支持 DEFAULT_GROUP 分组,优先级最低。
#        shared-dataids: ext-config-common01.properties, ext-config-common03.properties, ext-config-common03.properties
#        refreshable: ext-config-common01.properties
4.3 启动 nacos 服务 (运行启动类 )
<a name="anchor04-3"></a>
/***  C:\java-test\idea2019\nacos_config\service1\src\main\java\djh\it\nacos\service1\Service1BootStrap.java**  2024-3-21 springboot 启动类 **/package djh.it.nacos.service1;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@RestController
public class Service1BootStrap {public static void main(String[] args) {SpringApplication.run(Service1BootStrap.class, args);}// 注入配置文件上下文@Autowiredprivate ConfigurableApplicationContext applicationContext;//通过 @Value 注解读取配置信息@Value("${common.name}")private String config1;@GetMapping("/configs")public String getConfigs(){//读取配置信息
//        return config1;//动态获取配置信息return applicationContext.getEnvironment().getProperty("common.name");}//访问地址:浏览器地址栏输入:http://localhost:56010/configs  // 输出:service1 config//访问地址:浏览器地址栏输入:http://localhost:56010/configs  // 输出:service1 config 111111@GetMapping(value = "/configs2")public String getConfigs2(){//读取配置信息String name = applicationContext.getEnvironment().getProperty("common.name");String age = applicationContext.getEnvironment().getProperty("common.age");String address = applicationContext.getEnvironment().getProperty("common.address");String birthday = applicationContext.getEnvironment().getProperty("common.birthday");String fullname = applicationContext.getEnvironment().getProperty("common.fullname");//动态获取配置信息return name+"+"+age+"+"+address+"+"+birthday+"+"+fullname;
//        return age+"+"+address+"+"+birthday+"+"+fullname;//访问地址:浏览器地址栏输入:http://localhost:56010/configs2  // 输出:service1 config+18+beijing+1990-8-8+djh//如果是自定义共享 DataId 配置,只支持 DEFAULT_GROUP 分组//访问地址:浏览器地址栏输入:http://localhost:56010/configs2  // 其他分组会输出 null 值,输出:service1 config+18+beijing+null+null}}4.4 浏览器地址栏输入:http://localhost:56010/configs2 <a name="anchor04-4"></a>//优先级最低 ext-config-common01.properties 中的 age = 18//次之输出 ext-config-common03.properties 中 age = 20service1 config+20+beijing+1990-8-8+djh//优先输出 service1.yaml 中 age = 30service1 config+30+beijing+1990-8-8+djh![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/18c9a79615b94a4c9ee8d655d0ec05c1.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3d5f4c20831e4f09965801bb33b1d435.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/351caa5c012548659cc1b421e6f7123b.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/853504811a92420d84c559000bf8b97e.png)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/288121.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL进阶——锁

锁 概述 全局锁 表级锁 行级锁 概述 同Java中的锁。目的是为了保证数据一致性、完整性&#xff0c;提高并发安全、控制访问顺序。 分类 在MySQL中&#xff0c;根据锁的粒度分&#xff0c;分为以下3种&#xff1a; 全局锁&#xff1a;锁定数据库种的所有表 表级锁&#…

React中 类组件 与 函数组件 的区别

类组件 与 函数组件 的区别 1. 类组件2. 函数组件HookuseStateuseEffectuseCallbackuseMemouseContextuseRef 3. 函数组件与类组件的区别3.1 表面差异3.2 最大不同原因 1. 类组件 在React中&#xff0c;类组件就是基于ES6语法&#xff0c;通过继承 React.component 得到的组件…

后端常问面经之Java集合

HashMap底层原理 HashMap的数据结构&#xff1a; 底层使用hash表数据结构&#xff0c;即数组和链表或红黑树 当我们往HashMap中put元素时&#xff0c;利用key的hashCode重新hash计算出当前对象的元素在数组中的下标 存储时&#xff0c;如果出现hash值相同的key&#xff0c;此…

关于四篇GNN论文的阅读笔记PPT:包括GATNE,AM-GCN,HGSL和coGSL

关于四篇GNN论文的阅读笔记PPT&#xff1a;包括GATNE&#xff0c;AM-GCN&#xff0c;HGSL和coGSL 前言GATNEAM-GCNHGSLcoGSL 前言 这里的PPT主要是在跟Graph Transformer一起的&#xff1a; 【图-注意力笔记&#xff0c;篇章1】Graph Transformer&#xff1a;包括Graph Trans…

2024第六届环境科学与可再生能源国际会议能源 (ESRE 2024) 即将召开!

2024第六届环境科学与可再生能源国际会议 能源 &#xff08;ESRE 2024&#xff09; 即将举行 2024 年 6 月 28 日至 30 日在德国法兰克福举行。ESRE 2024 年 旨在为研究人员、从业人员和专业人士提供一个论坛 从工业界、学术界和政府到研究和 发展&#xff0c;环境科学领域的专…

网站首屏优化 | 提升首屏的几个简单手段

前言 在用户反馈中&#xff0c;诸如「白屏」、「加载慢」、「打不开」等关键词频繁出现&#xff0c;这些词汇直观地揭示了应用程序在实际操作中遭遇的技术挑战。 根据 Statista 的报告&#xff0c;应用加载速度的延迟超过 3 秒&#xff0c;用户流失率可增加 53% 。此外&#…

Linux :环境基础开发工具

目录: 1. Linux 软件包管理器 yum 1. 什么是软件包 2. 查看软件包 3. 如何安装软件 4. 如何卸载软件 2. Linux开发工具 1. Linux编辑器-vim的基本概念 2. vim使用 3. vim的基本操作 4. vim正常模式命令集 5. vim末行模式命令集 6. 简单vim配置 3. Linux编译器-gcc/…

【Java程序设计】【C00379】基于(JavaWeb)Springboot的旅游服务平台(有论文)

【C00379】基于&#xff08;JavaWeb&#xff09;Springboot的旅游服务平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c…

深度学习知识【CSPNet网络详解】

CSPNet的贡献 1.增强了CNN的学习能力&#xff0c;能够在轻量化的同时保持准确性。 2.降低计算瓶颈。 3.降低内存成本。 CSPNet介绍 在神经网络推理过程中计算量过高的问题是由于网络优化中的梯度信息重复导致的。CSPNet通过将梯度的变化从头到尾地集成到特征图中&#xff0c…

大型网络游戏设计与AI赋能-4

接上文---- 第一个要去搭建的就是这个运行平台层。在此之上&#xff0c;我们会引入一些第三方SDK包。 为什么要引入第三方的SDK包&#xff1f;大家要知道一点&#xff0c;任何研发一款软件从来都不会从头造轮子。就是我们在开发一款软件的时候&#xff0c;从来都不会从头造轮子…

Python中lambda函数使用方法

在Python中&#xff0c;lambda 关键字用于创建匿名函数&#xff08;无名函数&#xff09;&#xff0c;这些函数的特点是简洁、一次性使用&#xff0c;并且通常用于只需要一行表达式的简单场景。下面是lambda函数的基本结构和使用方法&#xff1a; 基本语法&#xff1a; lambd…

腾讯云2核2G服务器CVM S5和轻量应用服务器优惠价格

腾讯云2核2G服务器多少钱一年&#xff1f;轻量服务器61元一年&#xff0c;CVM 2核2G S5服务器313.2元15个月&#xff0c;腾讯云2核2G服务器优惠活动 txyfwq.com/go/txy 链接打开如下图&#xff1a; 腾讯云2核2G服务器价格 轻量61元一年&#xff1a;轻量2核2G3M、3M带宽、200GB月…

二叉树|235.二叉搜索树的最近公共祖先

力扣题目链接 class Solution { private:TreeNode* traversal(TreeNode* cur, TreeNode* p, TreeNode* q) {if (cur NULL) return cur;// 中if (cur->val > p->val && cur->val > q->val) { // 左TreeNode* left traversal(cur->left, p, q)…

基于springboot+vue的乌鲁木齐南山冰雪旅游服务网

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

树状数组原理和代码

树状数组 求下标的对应 求i管着的下标的范围 方法&#xff1a;拆掉最右侧的1然后1 到你自己 query sum 1-i的和 拆掉最右侧的1 再把下一个数值吸收到sum 重复这个过程直到全变0为止 add 方法&#xff1a;加上最右侧的1 到上限为止 lowbit方法 单点增加范围查询模板 #inc…

Java八股文(SpringCloud Alibaba)

Java八股文のSpringCloud Alibaba SpringCloud Alibaba SpringCloud Alibaba Spring Cloud Alibaba与Spring Cloud有什么区别&#xff1f; Spring Cloud Alibaba是Spring Cloud的衍生版本&#xff0c;它是由Alibaba开发和维护的&#xff0c;相比于Spring Cloud&#xff0c;它在…

【PLC】PROFIBUS(二):总线协议DP、PA、FMS

1、总线访问协议 (FDL) 1.1、多主通信 多个主设备间&#xff0c;使用逻辑令牌环依次向从设备发送命令。 特征&#xff1a; 主站间使用逻辑令牌环、主从站间使用主从协议主站在一个限定时间内 (Token Hold Time) 对总线有控制权从站只是响应一个主站的请求它们对总线没有控制…

【Java程序设计】【C00383】基于(JavaWeb)Springboot的水产养殖系统(有论文)

【C00383】基于&#xff08;JavaWeb&#xff09;Springboot的水产养殖系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c…

【包邮送书】一本书掌握数字化运维方法,构建数字化运维体系

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

11.数据库技术(下)

1.select语句 中括号表示可有可无&#xff1b; 尖括号表示变量名&#xff1b; 分组后再筛选&#xff0c;用having&#xff1b;分组前筛选&#xff0c;用where&#xff1b; select后跟随的所有列&#xff0c;除聚集函数外&#xff0c;都需要列在group by后&#xff1b; 注&…