hooyantsing's Blog

P32 Alibaba 微服务组件 Nacos 配置中心

字数统计: 537阅读时长: 2 min
2022/06/22

视频源:小破站讲的最好SpringCloudAlibaba入门教程,保姆级教程通俗易懂

1. Nacos 配置中心使用

1.1 Nacos-config 配置中心介绍

官方文档:http://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。

image-20220622162547111

1.2 Nacos-config 配置管理界面

最佳实现
  • NameSpace:区分开发环境(dev)和生产环境(prod);

  • Group:区分项目名;

  • Data ID:区分服务名。

image-20220622163512950

1.3 Nacos-config 权限管理

开启权限管理,否则设置了权限不生效。打开 Nacos 的 conf/application.properties 配置文件。

1
2
# 默认为 false 改为 true
nacos.core.auth.enabled=true

1.4 Nacos-config Client 读取配置

Step 01 加入依赖

1
2
3
4
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

Step 02 编辑/创建两个文件 application.yaml 和 bootstrap.yaml

1
2
3
4
# application.yaml

server:
port: 8050
1
2
3
4
5
6
7
8
9
10
11
12
# bootstrap.yaml 写配置中心相关的配置

spring:
application:
# 此项是服务名。若没指定 Nacos-config 提供的 Data ID,则自动加载名为服务名的 Data ID
name: config-nacos
cloud:
nacos:
server-addr: 127.0.0.1:8847
# 默认可以省略,若开启了权限管理,则为必填项
username: nacos
password: nacos

Step 03 测试一下

1
2
3
4
5
6
7
8
9
10
@SpringBootApplication
public class ConfigApplication {

public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(ConfigApplication.class, args);
String userName = applicationContext.getEnvironment().getProperty("user.name");
System.out.println(userName);
}

}

1.5 Nacos-config 其他扩展配置

内容较多不方便书写笔记,故给出以下链接帮助学习。

详见视频教程:https://www.bilibili.com/video/BV1bR4y1L724?p=36

详见官网文档:http://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config

1.6 Nacos-config @RefreshScope

单单 @Value 注解注入属性,无法感知到远程配置的变化。为此,给类加上 @RefreshScope 注解即可解决。

1
2
3
4
5
6
7
8
9
10
11
12
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${user.name}")
public String username;

@RequsetMapping("/show")
public String show(){
return username;
}
}
CATALOG
  1. 1. 1. Nacos 配置中心使用
    1. 1.1. 1.1 Nacos-config 配置中心介绍
    2. 1.2. 1.2 Nacos-config 配置管理界面
      1. 1.2.1. 最佳实现
    3. 1.3. 1.3 Nacos-config 权限管理
    4. 1.4. 1.4 Nacos-config Client 读取配置
    5. 1.5. 1.5 Nacos-config 其他扩展配置
    6. 1.6. 1.6 Nacos-config @RefreshScope