当前位置:   article > 正文

Nacos配置管理Feign远程调用Gateway服务网关_nacos配置网关

nacos配置网关

1.统一配置管理

1.统一配置管理流程

  1. 1.引入Nacos的配置管理客户端依赖
  2.     <dependency>
  3.         <groupId>com.alibaba.cloud</groupId>
  4.         <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  5.     </dependency>
  6. 2.在userservice中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml
  7.     spring:
  8.         application:
  9.             name: userservice # 服务名称
  10.         profiles:
  11.             active: dev #开发环境,这里是dev
  12.         cloud:
  13.             nacos:
  14.                 server-addr: localhost:8848 # Nacos地址
  15.                 config:
  16.                     file-extension: yaml # 文件后缀名
  17. 3.在nacos中编写配置文件
  18. 4.在user-service中将pattern.dateformat这个属性注入到UserController中做测试
  19.       @Value("${pattern.dateformat}")
  20.      private String dateformat;

总结:1.在微服务的pom文件中添加nacos的config依赖。

2.创建bootstrap.yml,配置nacos地址,以及配置在nacos中的配置文件名。

3.在nacos中添加配置文件。

1.配置自动刷新:

配置文件变更后,微服务无需重启就可以感知

方式一:

  1. 1.@Value注入的变量所在类上添加注解@RefreshScope
  2. @RefreshScope
  3. public class UserController {
  4. @Value("${pattern.dateformat}")
  5. private String dateformat;

方式二:

  1. 2.使用@ConfigurationProperties注解
  2.         1.创建一个类用于接收属性。
  3. @Data
  4. @Component
  5. /*
  6. * 热更新2
  7. * */
  8. @ConfigurationProperties(prefix = "pattern")
  9. public class PatternProperties {
  10. private String dateformat;
  11. private String envShareValue;
  12. }
  13.         2.在controller中注入调用
  14. @Autowired
  15. private PatternProperties patternProperties;
  16. @GetMapping("now")
  17. public String now(){
  18. return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()+"==="+patternProperties.getEnvShareValue()));

总结Nacos配置更改后实现热更新的方法有两个:

1.使用@Value注解注入,结合@RefreshScope来刷新。

2.通过@ConfigurationPreperties注入,自动刷新。

注意

1.不是所有的配置都适合放在配置中心,维护起来比较麻烦

2.建议将一些关键参数,需要运行时调整的参数放到nacos配置中心,一般都是自定义配置。

2.多环境共享:

配置文件的格式:
格式1.[spring.application.name]-[spring.profiles.active].yaml
格式2.[spring.application.name].yaml
无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件

优先级:

总结

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号