当前位置:   article > 正文

Nacos配置管理-微服务配置拉取

Nacos配置管理-微服务配置拉取

创造来源:在学习微服务这部分内容的时候遇到很多bug,改了又改,最后改好了。以下是我修改后实现配置拉取的代码,这里我使用了鉴权,所以配置里面有使用到下面的代码,如果没有配置鉴权则删掉下面代码。新版本的nacos默认没有鉴权需要自己去配置,当然不使用也可以实现拉取。我使用的也是最新版本的springcloud和nacos。

配置鉴权可以参考我之前这个博文:学习springcloud中Nacos笔记-CSDN博客

注意!注意!注意!如果没有使用鉴权去yml文件里面删掉这段配置。

  1. username: nacos #用户名
  2. password: nacos #密码

一、登录Nacos去配置

ff1155a1ae5843a388f8989903fbe668.png

07fb96f2da9b4db2bf2782d8e52cb5ca.png

记得Data Id不要写错

userservice-public.yaml

这里附上配置内容:

  1. pattern:
  2. dateformat: yyyy-MM-dd HH:mm:ss

配置成功后去idea里面拉取。

二、在user-service的pom.xml里面配置maven信息

  1. <!--nacos配置管理依赖-->
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId
  5. ></dependency>
  6. <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud- starter-bootstrap -->
  7. <dependency>
  8. <groupId>org.springframework.cloud</groupId>
  9. <artifactId>spring-cloud-starter-bootstrap</artifactId>
  10. <version>4.1.2</version>
  11. </dependency>

由于在新版本的nacos里面不再默认支持bootstrap,所以需要自己导入。这里我也选择最新版本,适配springcloud和nacos。

maven版本推荐可以在这里找:https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap

三、创建bootstrap.yml

bootstrap.yml会提前于其他yml文件在项目被先读取到nacos。

  1. spring:
  2. application:
  3. name: userservice
  4. profiles:
  5. active: public #环境配置,和nacos配置里面的环境一致,环境用命名空间来命名
  6. cloud:
  7. nacos:
  8. discovery:
  9. server-addr: localhost:8848
  10. config:
  11. file-extension: yaml #文件名后缀
  12. # data-id: userservice-public.yamluserservice-public.yaml
  13. namespace: public
  14. username: nacos #用户名
  15. password: nacos #密码

9a4b349a51d643ea8b76fbbde44c062d.png

这里我使用默认的命名空间,注意用户名密码如果不配做鉴权则不用,老版本的nacos也不用(如果没有提示要配置鉴权)

四、修改user-service的application.yml配置文件

  1. spring:
  2. # application:
  3. # name: userservice #user服务的名称
  4. cloud:
  5. nacos:
  6. # server-addr: localhost:8848 #nacos服务地址
  7. discovery:
  8. namespace: public
  9. # cluster-name: HZ #设置集群名称,这里HZ代指杭州,SH代表上海
  10. username: nacos #用户名
  11. password: nacos #密码

由于bootstrap.yml会被先读取,nacos里面不用配置也行

五、去编写接口测试

//UserController

  1. @Slf4j
  2. @RestController
  3. @RequestMapping("/user")
  4. public class UserController {
  5. @Value(value = "${pattern.dateformat}")
  6. private String dateformat;
  7. @GetMapping("now")
  8. public String now(){
  9. System.out.println(dateformat);
  10. return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
  11. }
  12. }

浏览器:

f1f452be4216483dbf422bbe53e7c19e.png

idea:

63fe2526acf646ab898b5ce849f49a8d.png

 

成功!!!

曾经也遇到bug:就是找不到${pattern.dateformat}这个,但是在我按照上述的步骤写完后,出现clean和编译maven,重启nacos服务,后来就成功了,整整搞了一下午的bug。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/494532
推荐阅读
相关标签
  

闽ICP备14008679号