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

news2024/12/26 10:36:37

💻目录

  • 前言
  • 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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

饥荒Mod 开发(二二):显示物品信息

饥荒Mod 开发(二一)&#xff1a;超大便携背包&#xff0c;超大物品栏&#xff0c;永久保鲜 饥荒中的物品没有详细信息&#xff0c;基本上只有一个名字&#xff0c;所以很多物品的功能都不知道&#xff0c;比如浆果吃了也不知道恢复什么&#xff0c; 采集的胡萝卜也不知道什么功…

DataProcess-VOC数据图像和标签一起进行Resize

VOC数据图像和标签一起进行Resize 参加检测比赛的时候&#xff0c;很多时候工业原始数据尺度都比较大&#xff0c;如果对数据不提前进行处理&#xff0c;会导致数据在加载进内存时花费大量的时间&#xff0c;所以在执行训练程序之前需要将图像提前进行预处理。对于目标检测的数…

Log4net 教程

一、Log4net 教程 在CodeProject上找到一篇关于Log4net的教程&#xff1a;log4net Tutorial&#xff0c;这篇博客的作者是&#xff1a;Tim Corey &#xff0c;对应源代码地址为&#xff1a; https://github.com/TimCorey/Log4netTutorial&#xff0c;视频地址为&#xff1a;Ap…

案例144:基于微信小程序的自修室预约系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

C/C++图形化编程(2)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 站在巨人的肩上是为了超过巨人&#x…

esp32使用lvgl,给图片取模显示图片

使用LVGL官方工具。 https://lvgl.io/tools/imageconverter 上传图片&#xff0c;如果想要透明效果&#xff0c;那么选择 输出格式C array&#xff0c;点击Convert进行转换。 下载.c文件放置到工程下使用即可。

Py之tensorflow-addons:tensorflow-addons的简介、安装、使用方法之详细攻略

Py之tensorflow-addons&#xff1a;tensorflow-addons的简介、安装、使用方法之详细攻略 目录 tensorflow-addons的简介 tensorflow-addons的安装 tensorflow-addons的使用方法 1、使用 TensorFlow Addons 中的功能&#xff1a; tensorflow-addons的简介 TensorFlow Addon…

本地搜索文件太慢怎么办?用Everything搜索秒出结果(附安装包)

每次用电脑本地的搜索都慢的一批&#xff0c;后来发现了一个搜索利器 基本上搜索任何文件都不用等待。 并且页面非常简洁&#xff0c;也没有任何广告&#xff0c;用起来非常舒服。 软件官网如下&#xff1a; voidtools 官网提供三个版本&#xff0c;用起来差别不大。 网盘链…

Javacv-利用Netty实现推流直播复用(flv)

前言 上一篇文章《JavaCV之rtmp推流&#xff08;FLV和M3U8&#xff09;》介绍了javacv的基本使用&#xff0c;今天来讲讲如何实现推流复用。 以监控摄像头的直播为例&#xff0c;通常分为三步&#xff1a; 从设备获取音视频流利用javacv进行解码&#xff08;例如flv或m3u8&am…

(2021|CoRR,AugCLIP,优化)FuseDream:通过改进的 CLIP+GAN 空间优化实现免训练文本到图像生成

FuseDream: Training-Free Text-to-Image Generation with Improved CLIPGAN Space Optimization 公众&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 2. CLIPGAN 文本到图…

如何使用kali来进行一次ddos攻击

本文章用于记录自己的学习路线&#xff0c;不用于其他任何途径! ! ! 哈喽啊&#xff01;又是好久不见&#xff0c;本博主在之前发过一个ddos攻击的介绍。 emm…虽然那篇文章也提到了ddos攻击的方式&#xff0c;但太过于简陋&#xff0c;好像也没有什么用&#xff0c;so&#…

金蝶云星空权限项表结构

文章目录 金蝶云星空权限项表结构BOS平台【权限项】MSSQL脚本使用场景优点减少手工一个个创建的人工成本&#xff0c;还容易出错保留内码&#xff0c;可以在代码层级使用&#xff0c;方便 金蝶云星空权限项表结构 BOS平台【权限项】 MSSQL脚本 --权限项主表 SELECT * FROM db…

快速学习 webpack

目录 1. webpack基本概念 webpack能做什么&#xff1f; 2. webpack的使用步骤 2.1_webpack 更新打包 3. webpack的配置 3.1_打包流程图 3.2_案例-webpack隔行变色 3.3_插件-自动生成html文件 3.4_加载器 - 处理css文件问题 3.5_加载器 - 处理css文件 3.6_加载器 - 处…

大数据----基于sogou.500w.utf8数据的MapReduce编程

目录 一、前言二、准备数据三、编程实现3.1、统计出搜索过包含有“仙剑奇侠传”内容的UID及搜索关键字记录3.2、统计rank<3并且order>2的所有UID及数量3.3、上午7-9点之间&#xff0c;搜索过“赶集网”的用户UID3.4、通过Rank&#xff1a;点击排名 对数据进行排序 四、参…

jQuery: 整理4---创建元素和添加元素

1.创建元素&#xff1a;$("内容") const p "<p>这是一个p标签</p>" console.log(p)console.log($(p)) 2. 添加元素 2.1 前追加子元素 1. 指定元素.prepend(内容) -> 在指定元素的内部的最前面追加内容&#xff0c;内容可以是字符串、…

代码随想录算法训练营 | day60 单调栈 84.柱状图中最大的矩形

刷题 84.柱状图中最大的矩形 题目链接 | 文章讲解 | 视频讲解 题目&#xff1a;给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 1 < heights.len…

动态规划系列 | 最长上升子序列模型(上)

文章目录 最长上升子序列回顾题目描述问题分析程序代码复杂度分析 怪盗基德的滑翔翼题目描述输入格式输出格式 问题分析程序代码复杂度分析 登山题目描述输入格式输出格式 问题分析程序代码复杂度分析 合唱队形题目描述输入格式输出格式 问题分析程序代码复杂度分析 友好城市题…

基于Java SSM框架实现医院挂号上班打卡系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现医院挂号上班打卡系统演示 摘要 在网络发展的时代&#xff0c;国家对人们的健康越来越重视&#xff0c;医院的医疗设备更加先进&#xff0c;医生的医术、服务水平也不断在提高&#xff0c;给用户带来了很大的选择余地&#xff0c;而且人们越来越追求更个…

Linux与Bash 编程——Linux文件处理命令-L1

目录&#xff1a; linux系统与shell环境准备 Linux系统简介操作系统简史Linux的发行版&#xff1a;Linux与Windows比较&#xff1a;Linux安装安装包下载Linux的访问方式远程登录方式远程登录软件&#xff1a;mobaxterm的使用&#xff1a;使用电脑命令行连接&#xff1a;sshd的…

系列十四、SpringBoot + JVM参数配置实战调优

一、SpringBoot JVM参数配置实战调优 1.1、概述 前面的系列文章大篇幅的讲述了JVM的内存结构以及各种参数&#xff0c;今天就使用SpringBoot项目实战演示一下&#xff0c;如何进行JVM参数调优&#xff0c;如果没有阅读过前面系列文章的朋友&#xff0c;建议先阅读后再看本篇文…