我是靠谱客的博主 害怕香菇,这篇文章主要介绍微服务 之 Nacos 配置中心 入门及使用5.配置中心,现在分享给大家,希望可以做个参考。

5.配置中心

5.1.应用场景

​ 在系统开发过程中,开发者通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成。配置变更是调整系统运行时的行为的有效手段。

如果微服务架构中没有使用统一配置中心时,所存在的问题:

  • 配置文件分散在各个项目里,不方便维护

  • 配置内容安全与权限

  • 更新配置后,项目需要重启

  1. 使用同一配置: 比如,多台服务器组成的集群,假如后端使用同一数据库,那么每台服务器都是用相同的配置。

  2. 使用不同的配置: 比如典型的场景是,开发,测试,生产使用相同的系统,但使用不同的数据库。

5.2.快速创建

创建模块

在这里插入图片描述

填写信息
在这里插入图片描述

选择配置中心组件

在这里插入图片描述

5.3.pom.xml 导入依赖

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

5.4.配置文件

建立 bootstrap.properties 配置文件, 这个文件在application.properties配置文件之前加载

配置文件中spring.application.name的值必须与Nacos创建的配置中Data Id匹配( Nacos配置文件的扩展名可以是.properties或者.yml)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
# 应用名称 spring.application.name=sca-nacos-config # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html # Nacos认证信息 spring.cloud.nacos.config.username=nacos spring.cloud.nacos.config.password=nacos spring.cloud.nacos.config.contextPath=/nacos # 设置配置中心服务端地址 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 # Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可 # spring.cloud.nacos.config.namespace=

5.5.建立测试类

复制代码
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
package com.yuan.scanacosconfig.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @RefreshScope * 当 配置中心的信息发生改变时, 取得信息自动变化 */ @RefreshScope @RestController @RequestMapping("/testConfig") public class ConfigController { @Value("${test.msg}") private String testProp; @RequestMapping("/showProperties") public String showProperties(){ return "配置信息是:" + this.testProp; } }

在 application.properties 配置文件中 加入

复制代码
1
2
test.msg=local_msg

通过浏览器访问

在这里插入图片描述

5.6.在Nacos中增加配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

直接 通过 浏览器 访问, 显示信息变成 配置中的内容

在这里插入图片描述

5.7.命名空间

在使用配置中心时,我们会经常关注一个问题:如何实现多环境的配置管理,即在不同的场景下加载不同的配置文件。
Nacos为我们提供了三个管理级别的概念Data ID, Group, Namespace。

5.7.1.增加新的命名空间

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以新建 配置

5.7.2.克隆配置

在这里插入图片描述

在这里插入图片描述

5.7.3.修改配置

在这里插入图片描述

在这里插入图片描述

5.7.4.修改项目配置

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
# 应用名称 spring.application.name=sca-nacos-config # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html # Nacos认证信息 spring.cloud.nacos.config.username=nacos spring.cloud.nacos.config.password=nacos spring.cloud.nacos.config.contextPath=/nacos # 设置配置中心服务端地址 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 # Nacos 配置中心的namespace。这里可以 写命名空间的ID, 这里写的是test空间的ID spring.cloud.nacos.config.namespace=de502140-986d-4605-90f3-f381254f4909

重启项目后, 再通过浏览器访问

在这里插入图片描述

5.8.分组

5.8.1.克隆配置

可以通过 克隆的形式 在同一命名空间中 复制新的配置, 但 组名不同

在这里插入图片描述

在这里插入图片描述

5.8.2.修改配置

在这里插入图片描述

在这里插入图片描述

5.8.3.修改项目配置

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 应用名称 spring.application.name=sca-nacos-config # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html # Nacos认证信息 spring.cloud.nacos.config.username=nacos spring.cloud.nacos.config.password=nacos spring.cloud.nacos.config.contextPath=/nacos # 设置配置中心服务端地址 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 # Nacos 配置中心的namespace。这里可以 写命名空间的ID, 这里写的是test空间的ID spring.cloud.nacos.config.namespace=de502140-986d-4605-90f3-f381254f4909 # 增加分组信息 分组 与 配置中心的 组名对应上 spring.cloud.nacos.config.group=NEW_GROUP

重启项目后, 再通过浏览器访问

在这里插入图片描述

5.9.加载多个配置文件

5.9.1.在配置中心增加多个配置文件

在这里插入图片描述

分别对应:

datasource.yml

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
# 数据库驱动: spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver # 数据源名称 name: defaultDataSource # 数据库连接地址 url: jdbc:mysql://localhost:3306/manymanygood?serverTimezone=UTC # 数据库用户名&密码: username: root password: root

nacosdiscovery.yml

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
# Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html # Nacos认证信息 spring: cloud: nacos: discovery: username: nacos password: nacos # Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口 server-addr: 127.0.0.1:8848 # 注册到 nacos 的指定 namespace,默认为 public namespace: public

other.yml

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
# 应用名称 spring: application: name: sca-nacos-config # 应用服务 WEB 访问端口 server: port: 8080 #自定义信息 test: msg: new_new_msg

并删除 原来 的application.properties 对应的内容

5.9.2.修改项目的bootstrap.properties 配置文件

增加

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP spring.cloud.nacos.config.extension-configs[0].refresh=true spring.cloud.nacos.config.extension-configs[1].data-id=nacosdiscovery.yml spring.cloud.nacos.config.extension-configs[1].group=DEFAULT_GROUP spring.cloud.nacos.config.extension-configs[1].refresh=true spring.cloud.nacos.config.extension-configs[2].data-id=other.yml spring.cloud.nacos.config.extension-configs[2].group=DEFAULT_GROUP spring.cloud.nacos.config.extension-configs[2].refresh=true

重启项目后, 再通过浏览器访问

在这里插入图片描述

5.10.设置日志输出级别

复制代码
1
2
logging.level.com.alibaba.nacos.client.naming=error

5.11.yml 配置格式

复制代码
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
spring: application: name: renren-fast cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml namespace: 10000 extension-configs[0]: data-id: common-redis.properties group: DEFAULT_GROUP refresh: true logging: level: com: alibaba: nacos: client: naming: error

最后

以上就是害怕香菇最近收集整理的关于微服务 之 Nacos 配置中心 入门及使用5.配置中心的全部内容,更多相关微服务内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部