nacos配置中心配置已经常见错误总结

💻目录

  • 前言
  • 1、基础架构
  • 2、依赖
  • 3、配置文件
    • 3.1、bolg-product配置文件
      • 3.1.1、application.yml配置文件
      • 3.1.2、bootstrap.yml配置文件
      • 3.1.3、nacos远程配置
    • 3.2、bolg-system
      • 3.1.1、application.yml配置文件
      • 3.1.2、bootstrap.yml配置文件
      • 3.2.3、nacos远程配置
  • 4、测试

前言

🌟 本套mode使用的是Alibaba的2021.0.1版,springboot的2.6.3实现(适用于springboot 2.7~2.4),Nacos使用的最新的2.2.3版本,如果需要看安装nacos和基础搭建可以看我下面的博客!

nacos的安装和基本配置使用可以查看我这篇博客,或者关注下面的专栏后续会持续更新其他的Spring Cloud 组件介绍以及使用
🍅Nacos下载与安装配置(2.2.3版本示例)
🥒Spring Cloud Alibaba专栏

1、基础架构

大致架构如下:

  • 父包指定spring的版本,
  • 在util里存放共用的实体以及共用的一些依赖以及工具类
  • 然后我建立了两个product的Module用来做远程调用时轮询测试
    在这里插入图片描述
    在这里插入图片描述

2、依赖

其他的一些依赖这里就不放了,只放nacos的相关依赖,第一个是服务注册的依赖,第二个是使得加载bootstrap.yml文件在application.yml文件前面加载。第三个是读取nacos配置中心的依赖(该依赖不加无法读取到nacos配置中心的内容,但不会报错!)。第四个是用于自动读取加载和刷新nacos中最新的配置的,@NacosValue注解是依靠它
🔻:如果没有报错,并且配置也没有错,就很大可能是少了这个依赖,或者是nacos的版本和spring的版本不兼容!

        <!--        nacos 服务注册 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
<!--        加载bootstrap文件-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
<!--        读取nacos配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <!--            <version>2.2.0.RELEASE</version>-->
        </dependency>
        <!-- 自动配置Nacos相关的配置加载和刷新!:提供了@NacosValue注解使用-->
         <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.12</version>
        </dependency>

3、配置文件

bootstrap配置文件和application配置文件使用区别:

  • bootstrap配置文件用于加载应用程序的基础配置,例如连接配置中心(如Nacos、Consul等)、配置加密等。
  • application配置文件用于加载应用程序的业务配置。

3.1、bolg-product配置文件

两个bolg-product项目配置文件除了端口其他的一样的。

3.1.1、application.yml配置文件

这里不做什么配置就简单的配置名字和端口。

server:
  port: 8203

spring:
  application:
    name: bolg-product

3.1.2、bootstrap.yml配置文件

spring:
  #   注入到nacos
  cloud:
    nacos:
      #配置中心配置
      discovery:
        namespace: a5b81f44-9ca6-42b6-99ff-a2a11626a09d
        server-addr: 192.168.0.104:8848
        username: nacos #账号
        password: nacos #密码

      #注册中心配置:主要配置,一般情况下配置前面的就可以了
      config:
        server-addr: 192.168.0.104:8848  #注册的地址
        username: nacos #账号
        password: nacos #密码
        namespace: a5b81f44-9ca6-42b6-99ff-a2a11626a09d #命名空间
        file-extension: yml #配置文件的后缀
        prefix: bolg-product #配置文件前缀 ,如果不写 默认使用${spring.application.name}的值
        group: BOLG_GROUP #组名
        auto-refresh: true # 开启自动刷新

	#配置次配置文件:在一些特殊时候可能要配置多个,
      extension-configs:
        - data-id: config-a-dev.yml #配置文件全名
          group: GROUP-A #组名
          refresh: true #是否支持热加载刷新
        - data-id: config-b-dev.yml
          group: GROUP-A
          refresh: false

        #共享配置文件 ---优先级低(比本地的低)
      shared-configs:
        - data-id: application.yml
          group: GROUP-A

3.1.3、nacos远程配置

这个地方的DataID的值是需要是:${prefix}-${spring.profiles.active}.${file-extension}
我这里写的是bolg-order.yml是因为我没有配置spring.profiles.active这个参数

${prefix}如果不写默认会去取${spring.application.name}
在这里插入图片描述

在这里插入图片描述

3.2、bolg-system

3.1.1、application.yml配置文件

因为我要用openfeign远程调用使用加了其他的一些参数配置

server:
  port: 8201
spring:
  application:
    name: bolg-order
#  profiles:
#    active: dev

#        开启负载均衡(默认是不开启的)
feign:
  circuitbreaker:
    enabled: true
#   熔断配置
hystrix:
  command:
    default:
      execution.isolation.thread.timeoutInMilliseconds: 3000 # 设置Hystrix超时时间(毫秒)
    ProductFeignClient#getProducts:
      execution.isolation.thread.timeoutInMilliseconds: 1000 # 为特定的Feign方法设置超时时间

3.1.2、bootstrap.yml配置文件

这个地方我为了对比差异尝试,配置中心和注册中心应该是分开的,他们的配置可以不设置在同一个命名空间里,这里我注册中心配置在了dev空间,而配置中心我放在了默认的public命名空间,不设置${namespace}参数就是默认的命名空间

server:
  port: 8201
spring:
  #   注入到nacos
  cloud:
    nacos:
      #配置中心配置
      discovery:
        namespace: a5b81f44-9ca6-42b6-99ff-a2a11626a09d
        server-addr: 192.168.0.104:8848
        username: nacos #账号
        password: nacos #密码

      #注册中心配置
      config:
        server-addr: 192.168.0.104:8848
        username: nacos #账号
        password: nacos #密码
#        namespace: a5b81f44-9ca6-42b6-99ff-a2a11626a09d   #不写命名空间默认是public
        file-extension: yml #配置文件的后缀
        prefix: bolg-order #配置文件前缀 ,如果不写 默认使用${spring.application.name}的值
        group: BOLG_GROUP #组名
        auto-refresh: true

3.2.3、nacos远程配置

和上面的区别是命名空间不同
在这里插入图片描述

在这里插入图片描述

4、测试

这里我就加一个测试读取nacos远程文件的接口吧

  • 使用@Value注解也可以读取到远程的内容的,因为它加载时加被加载一起加载到本地了
  • 使用@NacosValue注解需要加第四个依赖才可以读取到远程的内容
@RestController
@RequestMapping("/admin/acl/index")
@Slf4j
public class index {

    @Resource
    private ProductFeignClient productFeignClient;

    @NacosValue(value = "${bolg.name}" ,autoRefreshed = true)
    private String NacosName;

    @Value( "${bolg.name}")
    private String NacosName2;
    @Value("${server.port}")
    private Integer Port;
    /**
     * 测试订单服务是否有问题
     * @author yingfeng
     * @return * @return Result
     */
    @PostMapping("/login")
    public Result login(){
        log.info("nacos名字:{},{},本地端口:{}",NacosName,NacosName2,Port);

        HashMap<String, String> map = new HashMap<>(16);
        map.put("token","token-admin");

        System.out.println();
        return Result.ok(map);
    }

读取到的内容:可以看到如果本地和远程写了同样的内容,优先级上远程的要高一些。
具体的优先级如下:

- 配置文件优先级(由高到低):
nacos远程的配置 -> 本地application.properties -> application.yml ->本地bootstrap.properties -> bootstrap.yml

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/268123.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【文本处理】正则表达式

一、简介 正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&…

在Redis客户端设置连接密码 并演示密码登录

我们先连接到Redis服务 然后 我们要输入 CONFIG SET requirepass “新密码” 例如 CONFIG SET requirepass "A15167"这样 密码就被设置成立 A15167 我们 输入 AUTH 密码 例如 AUTH A15167这里 返回OK说明成功了 然后 我们退出在登录就真的需要 redis-cli -h IP地…

嵌入式开发——PWM高级定时器

学习目标 加强掌握PWM开发流程理解定时器与通道的关系掌握多通道配置策略掌握互补PWM配置策略掌握定时器查询方式掌握代码抽取优化策略掌握PWM调试方式学习内容 需求 点亮8个灯,采用pwm的方式。 定时器 通道 <

vue3 新项目 - 搭建路由router

创建router/index 文件 main.ts 安装 router 然后 在 app下面 去 设置 路由出口

【贪心】买卖股票的最佳时机含手续费

/** 贪心&#xff1a;每次选取更低的价格买入&#xff0c;遇到高于买入的价格就出售(此时不一定是最大收益)。* 使用buy表示买入股票的价格和手续费的和。遍历数组&#xff0c;如果后面的股票价格加上手续费* 小于buy&#xff0c;说明有更低的买入价格更新buy。如…

深度神经网络下的风格迁移模型(C#)

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 这个是C#版本的&#xff0c;这里就只放出代码。VB.Net版本请参看 深度神经网络下的风格迁移模型-CSDN博客 斯坦福大学李飞飞团队的…

智能优化算法应用:基于天鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于天鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于天鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.天鹰算法4.实验参数设定5.算法结果6.参考文献7.MA…

Unity PlayerPrefs存储数据在Windows环境中本地存储的位置

Unity PlayerPrefs存储数据在Windows环境中本地存储的位置 一、编辑器模式下的PlayerPrefs存储位置1.Win r 输入regedit进入注册表界面2. HKEY_CURRENT_USER/Software/Unity3.CompanyName和ProjectName可以在Unity->Edit->Project Settings->Player中查看和设置 二、…

Vue3数据交互axios

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

Git系统有哪些优势

在现在的这个软件开发领域&#xff0c;版本控制是一项非常重要的工作。Git作为比较流行的分布式版本控制系统&#xff0c;他有着独特的优势成为了很多开发者们的首选。那Git系统都有哪些优势呢&#xff0c;下面我以自己的理解简单的介绍一下。 分布式版本控制的优势 Git用的是…

Java多线程、线程池及线程同步(synchronized关键字、悲观锁、乐观锁)

1.进程与线程定义 进程包含线程&#xff0c;如一个百度网盘进程&#xff0c;该进程的线程可以有上传&#xff0c;下载。 2.创建线程的三种方式 方式1-继承Thread类 方式2-实现Runnabled接口 1.常规写法 2.匿名内部类写法 方式3-实现Callable接口 示例代码&#xff1a; f1.get…

nginx 利用 error_page 实现自定义 404 跳转

文章目录 [toc]指定错误代码的 url 路径使用 response 来更改状态码使用 URL 重定向开始搞事情创建一个 404 文件配置 conf 文件通过 CURL 命令验证 error_page 以下内容&#xff0c;摘抄翻译自官网 语法格式 - error_page code ... [[response]] uri;上下文 - http, server, l…

【数据结构入门精讲 | 第十篇】考研408排序算法专项练习(二)

在上文中我们进行了排序算法的判断题、选择题的专项练习&#xff0c;在这一篇中我们将进行排序算法中编程题的练习。 目录 编程题R7-1 字符串的冒泡排序R7-1 抢红包R7-1 PAT排名汇总R7-2 统计工龄R7-1 插入排序还是堆排序R7-2 龙龙送外卖R7-3 家谱处理 编程题 R7-1 字符串的冒…

SpringSecurity6 | 失败后的跳转

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏: MySQL学习 🥭本文内容: SpringSecurity6 | 失败后的跳转 📚个人知识库: Leo知识库,欢迎大家访问 学习…

rk3588 之启动

目录 uboot版本配置修改编译 linux版本配置修改编译 启动sd卡启动制作spi 烧录 参考 uboot 版本 v2024.01-rc2 https://github.com/u-boot/u-boot https://github.com/rockchip-linux/rkbin 配置修改 使用这两个配置即可&#xff1a; orangepi-5-plus-rk3588_defconfig r…

高级人工智能之群体智能:蚁群算法

群体智能 鸟群&#xff1a; 鱼群&#xff1a; 1.基本介绍 蚁群算法&#xff08;Ant Colony Optimization, ACO&#xff09;是一种模拟自然界蚂蚁觅食行为的优化算法。它通常用于解决路径优化问题&#xff0c;如旅行商问题&#xff08;TSP&#xff09;。 蚁群算法的基本步骤…

【C->Cpp】深度解析#由C迈向Cpp(2)

目录 &#xff08;一&#xff09;缺省参数 全缺省参数 半缺省参数 缺省参数只能在函数的声明中出现&#xff1a; 小结&#xff1a; &#xff08;二&#xff09;函数重载 函数重载的定义 三种重载 在上一篇中&#xff0c;我们从第一个Cpp程序为切入&#xff0c;讲解了Cpp的…

Topaz Video AI 视频修复工具(内附安装压缩包win+Mac)

目录 一、Topaz Video AI 简介 二、Topaz Video AI 安装下载 三、Topaz Video AI 使用 最近玩上了pika1.0和runway的图片转视频&#xff0c;发现生成出来的视频都是有点糊的&#xff0c;然后就找到这款AI修复视频工具 Topaz Video AI。 一、Topaz Video AI 简介 Topaz Video…

Openai的openai新版本调用方式

最近大家有没有发现Openai的openai已经更新到1.6.1了,而且API的调用方式发生了巨大的变化,下面来看看openai新的调用方式吧。 欢迎关注公众号 module ‘openai’ has no attribute ChatCompletion. 提示openai的版本过低。(pip install -U openai) 1. Chat API from openai…

【MySQL学习笔记008】多表查询

1、多表关系 概述&#xff1a;项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构之间也存在着各种联系&#xff0c;基本上可分为三种&a…