当前位置:   article > 正文

18.Nacos配置管理-微服务读取Nacos中的配置

18.Nacos配置管理-微服务读取Nacos中的配置

需要解决的问题

1.实现配置更改热更新,而不是改动了配置文件还要去重启服务才能生效。

2.对多个微服务的配置文件统一集中管理。而不是需要对每个微服务逐一去修改配置文件,特别是公共通用的配置。

配置管理服务中的配置发生改变后,回去立马通知各个微服务完成对最新配置的读取,并完成热更新

 Nacos管理控制台的配置管理

 配置文件的Data ID:服务名称-profile.后缀名

微服务如何读取到nacos中的配置信息

bootstrap.yml引导文件的优先级 > application.yml

优先级:application.properties > application.yml > application.yaml

引入nacos配置管理的pom坐标依赖:

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

bootstrap.yml文件的内容:

  1. spring:
  2. application:
  3. name: order-service # 服务名称
  4. profiles:
  5. active: dev # 开发环境
  6. cloud:
  7. nacos:
  8. server-addr: localhost:8848 # Nacos地址
  9. config:
  10. file-extension: yaml # 文件后缀名

正好对应了nacos管理控制台中配置文件的名称: order-service-dev.yaml

application.yml中与bootstrap.yml配置中重复的配置给注释掉。

  1. server:
  2. port: 8080
  3. spring:
  4. datasource:
  5. url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
  6. username: root
  7. password: 123456
  8. driver-class-name: com.mysql.jdbc.Driver
  9. # application:
  10. # name: order-service
  11. cloud:
  12. nacos:
  13. # server-addr: localhost:8848 #nacos服务端地址
  14. discovery:
  15. cluster-name: chengdu #配置集群名称也就是机房位置
  16. # namespace: 713c0b99-4de3-4774-b186-b9b3a94f60d0 #配置命名空间的id
  17. mybatis:
  18. type-aliases-package: com.xkj.org.pojo
  19. configuration:
  20. map-underscore-to-camel-case: true
  21. logging:
  22. level:
  23. com.xkj.org: debug
  24. pattern:
  25. dateformat: MM-dd HH:mm:ss:SSS
  26. #eureka:
  27. # client:
  28. # service-url:
  29. # defaultZone: http://localhost:10086/eureka/
  30. user-service:
  31. ribbon:
  32. # NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡规则
  33. NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡规则
  34. ribbon:
  35. eager-load:
  36. enabled: true # 开启饥饿加载
  37. clients:
  38. - user-service #对user-service这个服务饥饿加载
  1. @Value("${pattern.dateformat}")
  2. private String dateformat;
  3. @GetMapping("now")
  4. public String now() {
  5. log.info("dateformat={}", dateformat);
  6. return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat, Locale.CHINA));
  7. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/525202
推荐阅读
相关标签
  

闽ICP备14008679号