【Nacos】配置管理、微服务配置拉取、实现配置热更新、多环境配置

简介: 【Nacos】配置管理、微服务配置拉取、实现配置热更新、多环境配置

一、nacos实现配置管理

1.1 统一配置管理

在微服务搭建中,每个微服务中的业务都需要去完成数据库查询,并且服务之间还会完成相互调用,而要完成相互调用,需要将每个服务都注册到服务中心,消费者就可以从服务中心完成注册发现实现服务获取和负载均衡,完成远程调用,随着服务的增多,可能会有数十上百上千条这种情况,这时就需要对配置文件进行修改,这个配置文件可能跟数十上百上千条微服务都有关系,这时就需要逐个去修改配置,会非常麻烦,而且在配置完后,还需要对每个服务进行重启,而进行统一配置管理后只需要对一个配置文件进行修改即可,通过配置管理服务就可以实现在修改完配置文件后不需要重启服务就可以使用,配置管理服务是通过在服务启动时先去读取配置管理服务上的配置,再和本地的配置进行结合作为完整配置进行使用



1.1 nacos完成配置管理

  • 在nacos中添加配置信息:
  • 填写配置信息:

  • 发布:


二、微服务配置拉取

统一配置完成后,在微服务项目启动时,就需要对该配置进行拉取,即项目启动时,要先读取nacos中的配置文件,那么就需要获取nacos的地址,而nacos的地址在本地配置文件中,要想提前知道nacos地址,就需要创建一个名为bootstrap.yml的文件,这个文件的优先级比本地配置文件properties.yml文件高很多,所以将nacos地址的相关配置加在bootstrap.yml中就可以提前加载nacos地址从而访问nacos配置文件了。

2.1 引入Nacos的配置管理客户端依赖

<!--nacos的配置管理依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.2 在resource目录添加引导文件bootstrap.yml

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 开发环境,这里是dev
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      config:
        file-extension: yaml  #文件后缀名

2.3 验证(读取nacos中的配置信息)

  • nacos的配置信息
pattern:
    dateformat: yy-MM-dd HH:mm:ss
  • 在userservice的Controller中读取当前时间信息,通过该配置展现出来
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;
    @Value("${pattern.dateformat}")
    private String dateformat;
    @GetMapping("now")
    public String now() {
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }
}

三、实现配置热更新

3.1 通过@Value注解注入,结合@RefreshScope

@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
    @Autowired
    private UserService userService;
    @Value("${pattern.dateformat}")
    private String dateformat;
    @GetMapping("now")
    public String now() {
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }
}

3.2 通过@ConfigurationProperties注入,自动刷新

@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
}
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;
    @Autowired
    private PatternProperties patternProperties;
    @GetMapping("now")
    public String now() {
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));
    }
}

四、多环境配置

4.1 [服务名]-[spring.profile.actie].yaml,环境配置

pattern:
    dateformat: yy/MM/dd HH:mm:ss
    name: 环境配置dev

4.2 [服务名].yaml,多环境共享,默认配置

pattern:
    envSharedValue: 环境共享属性值
    name: 环境共享属性值default

4.5 本地配置

pattern:
  name: 本地环境local

优先级:[服务名]-[spring.profile.actie].yaml > [服务名].yaml > 本地配置


相关文章
|
7天前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
|
10天前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
22 4
|
10天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
26 3
|
10天前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
24 3
|
4月前
|
Java Nacos 数据库
使用 nacos 搭建注册中心及配置中心
使用 nacos 搭建注册中心及配置中心
100 5
|
11天前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
41 1
Nacos配置中心
|
4月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
137 3
|
19天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
44 0
|
2月前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
3月前
|
安全 Nacos 数据安全/隐私保护
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
本文详细介绍了如何在微服务环境下从 Nacos 1.3.0 升级到 2.3.0,并确保 Seata 各版本的兼容性。作者小米分享了升级过程中的关键步骤,包括备份配置、更新鉴权信息及验证测试等,并解答了常见问题。通过这些步骤,可以帮助读者顺利完成升级并提高系统的安全性与一致性。
118 8
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置