码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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. <dependency>
    2. <groupId>com.alibaba.cloudgroupId>
    3. <artifactId>spring-cloud-starter-alibaba-nacos-config
    4. >dependency>
    5. <dependency>
    6. <groupId>org.springframework.cloudgroupId>
    7. <artifactId>spring-cloud-starter-bootstrapartifactId>
    8. <version>4.1.2version>
    9. 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。

     

     

     

  • 相关阅读:
    第十四章《多线程》第7节:线程组
    2022-06-21 Java后端面试总结
    精品,阿里P8爆款《SpringBoot+vue全栈开发实战项目》笔记太香了
    控制bean的加载
    0049__Linux下文件关联的实现原理
    Python基于PC版微信实现机器人
    港科夜闻|香港科大计划建立北部都会区卫星校园完善"科大创新带",发展未来创新科技 未来医药发展及跨学科教育...
    this 的五种绑定方式(默认 / 隐式 / 显式 / new 构造函数 / 箭头函数)
    都说了能不动就别动,非要去调整,出生产事故了吧 → 补充
    file文件操作—操作系统底层关系_写入文件
  • 原文地址:https://blog.csdn.net/qq_73440769/article/details/137953701
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号