springcloud(配置中心)

news2024/11/15 8:47:37

目录

  • 1. 为何需要配置中心
  • 2. nacos的配置中心
    • 2.1 配置示例
    • 2.2 多环境配置
    • 2.3 GROUP
    • 2.4 namespace

1. 为何需要配置中心

没有配置中心的情况下会出现什么情况:

  • 如果没有配置中心,则各个服务的配置文件分散在各个项目中,不方便维护
  • 出于安全考虑,实际开发中,开发人员并不知道生产环境的配置
  • 在更新配置后项目需要重启

加配置中心后可以有效的解决上述的问题。

2. nacos的配置中心

下面的开发示例演示了如何在一个服务中加入配置中心的支持。如果对Netflex公司开发的微服务组件有所了解,应该知道在Neflex服务组件中也有配置中心,但需要专门创建一个注册中心服务与GitHub(或类型的git仓库)中的配置文件仓库关联,其他服务使用配置中心时需要调用配置中心服务。nacos则比较简单,只用在需要配置中心的模块中直接配置即可。

具体步骤:

  • 创建一个新的模块,用于演示配置中心的使用
  • 编写pom导入必要依赖
  • 编写项目配置文件,yml或properties
  • 编写启动类
  • nacos中增加配置信息
  • 在项目中使用配置中心
  • 配置自动刷新

2.1 配置示例

1) 新建一个模块,作为配置中心

2)pom文件引入必要的依赖

    <dependencies>

        <!-- 提供web能力 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 从注册中心进行服务发现 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- 配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!-- 向注册中心进行服务注册 -->
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
        </dependency>

    </dependencies>

2) 编写项目配置文件

bootstap.yml与application.yml之间的区别:
bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息。

bootstap的使用场景:

  • 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息
  • 一些固定的不能被覆盖的属性
  • 一些加密/解密的场景

bootstrap.yml

server:
  port: 8877 #服务端口号

spring:
  application:
    name: service-config #服务名称
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848  #中心中西ip及端口号
      config:
        server-addr: 127.0.0.1:8848 #配置中心及端口号
        file-extension: yaml  #存放在配置中心的配置文件的扩展名

application.yml

spring:
  profiles:
    active: dev  #表示启用开发环境的配置文件

3)编写启动类

@SpringBootApplication
@EnableDiscoveryClient
public class ConfigApp {

    public static void main(String[] args) {
        SpringApplication.run(ConfigApp.class,args);
    }

}

4)启动配置服务,测试是否能正常的加入到nacos

5)nacos中增加配置信息

  • dataId的规则: $ {prefix}-spring.profile.active.{file-extension}
    $ {prefix}: 前缀,默认为spring.application.name的值
    $ {spring.profile.active} 当前环境对应的profile,(多环境配置)
    $ {file-extension} 配置内容的数据格式(文件扩展名)

根据上面的规则,我们可以将dataId配置为: nacos-config-dev.yml , 此处需要和bootstrap.yml中配置的file-extension属性保持一致,否则不能正常读取。

注意:此处需要注意配置文件的格式,如果是yml文件,则冒号后面需要有一个空格。

6)读取配置中心信息

ConfigController.java

@RestController
@RefreshScope
public class ConfigController {

   @Value("${config.msg}")
   private String msg;

   @GetMapping("/config/msg")
   public String getMsg() {
       return msg;
   }

}

2.2 多环境配置

1)通过上面讲述的配置步骤,再配置一个配置文件,dataId:nacos-config-test.yml, test表示为测试环境。如图所示:

2)将application.yml配置文件修改使用test环境

spring:
  profiles:
    active: test

3)启动服务测试,如图,说明多环境配置生效。

2.3 GROUP

1)在配置中心中创建一个新的配置文件,并指定分组,dataId的规则同上。

2)配置文件
bootstrap.yml

application.yml

 

3)启动测试

2.4 namespace

1) public为保留的命名空间名称

2)创建命名空间

 

3)创建成功

4)在创建的命名空间中添加配置 

具体配置如下:

5) 配置文件

 =-------

 

6) 测试

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

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

相关文章

代码审计学习 : xhcms

前言 从大佬那里听说&#xff0c;xhcms 很适合代码审计的新手。 环境 php 5.4.45 Apache 2.4.39 Mysql 5.7.26 文件上传配合文件包含 /index.php 和 /admin/index.php error_reporting(0); //关闭错误显示 $fileaddslashes($_GET[r]); //接收文件名 $action$file?index:…

FH30502输入3.7V升5V电流3A-5A同步整流升压芯片

3.3V升5V电流3A-5A同步整流升压芯片&#xff0c;2.7V到18V的输入电压支持供电系统和电池的较宽范围应用。FH30502根据负载情况的变化自动切换工作模式&#xff0c;在轻载Burst模式下静态电流处于低状态。FH30502使用自适应常数断开时间峰值电流模式控制。FH30502有一个内部特性…

C 语言实现经典贪吃蛇游戏

原文链接&#xff1a;C语言 贪吃蛇游戏 文章目录一、说明二、效果2.1 欢迎界面2.2 游戏规则2.3 得分排行2.4 退出游戏2.5 游戏界面2.6 游戏结束三、源码3.1 cmd.h3.2 cmd.c3.3 io.h3.4 io.c3.5 model.h3.6 service.h3.7 service.c3.8 ui.h3.9 ui.c3.10 utils.h3.11 utils.c3.12…

m蜂窝移动通信系统中越区切换的matlab仿真分析

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 用Matlab仿真一个蜂窝模型&#xff0c;用户在打电话时产生切换的过程。建立蜂窝越区切换&#xff0c;假设有16个蜂窝&#xff0c;实现两个小区之间的硬切换&#xff0c;每个小区假设能容纳30个用…

UDS入门至精通系列:Service 14

文章目录 一、Service 14功能是什么二、UDS协议对服务的定义三、用图形说明Service 14四、手动测试总结一、Service 14功能是什么? 在汽车电子诊断领域,在新车型定义诊断需求时,会给每一个ECU的故障类型定义一个DTC,ECU中运行代码判定DTC是否产生(判定机制和原理我会在关于…

Gateway之限流、熔断

目录 一、Sentinel--服务容错 ① 简化启动我们的nacos 1.高并发带来的问题 ① 修改配置文件中tomcat的并发数 ② 使用压测工具&#xff0c;对请求进行压力测试 第一步&#xff1a;修改配置&#xff0c;并启动软件 第二步&#xff1a;添加线程组 第三步&#xff1a;配置线…

MySQL 小版本升级步骤

MySQL mysql 5.7.38 升级到 5.7.40 下载软件升级包 参考下载地址&#xff1a;https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz 上传软件包至服务器 可以使用rz命令或scp上传本地文件 比如上传至服务器目录为 /usr/local/software…

关于如何获取上周均值的实时数据思路,吾之解合君意否?

&#x1f4da; 在前端界面图形化展示中&#xff0c;目前主流以报表形式&#xff0c;或者以曲线图形式展示其所需数据的数字动态变化效果居多。在数据量不大或者不需要模糊对比的情况下&#xff0c;我们以报表展示为主&#xff1b;而我们需要从肉眼宏观可见的监控数据变化&#…

volatile解决有序性和可见性问题

线程可见性问题分析 什么是可见性&#xff1f; 如果一个线程对一个共享变量进行了修改 而其他线程不能及时地读取修改后的值 所以在多线程情况下该共享变量就会存在可见性问题 package com.alipay.alibabademo.thread;import lombok.extern.slf4j.Slf4j;import java.util.co…

改进遗传算法在TSP问题中的应用(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

玩转Python图片处理(OpenCV)

OpenCV是一个基于BSD许可&#xff08;开源&#xff09;发行的跨平台计算机视觉库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Ruby、MATLAB等语言的接口&#xff0c;…

Qt扫盲-QLabel使用总结

QLabel使用总结一、QLabel 显示内容二、注意事项1. 格式注意2. 不保留先前状态3. 格式对齐4. 伙伴焦点三、信号和槽函数使用1. 信号2. 槽函数总结&#xff1a;QLabel 其实就是一个用来只读显示的简易控件。适合数据量很小的内容显示。QLabel用于显示 文本或图像。 不提供用户交…

深度学习之目标检测通用技巧

深度学习之目标检测通用技巧深度学习之目标检测通用技巧深度学习之目标检测通用技巧 一 数据增强 1.离线增强 离线增强:对数据集进行处理&#xff0c;数据的数目会变成增强因子原数据集的数目 2.在线增强 对输入模型的batch的数据进行增强&#xff0c;如旋转、平移、翻折等…

今天给大家介绍一篇基于SSM的教材管理系統的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【Tensorflow学习三】神经网络搭建八股“六步法”编写手写数字识别训练模型

神经网络搭建八股“六步法”编写手写数字识别训练模型Sequential用法model.compile(optimizer优化器,loss损失函数,metrics["准确率"])model.fitmodel.summery六步法搭建鸢尾花分类网络class搭建具有非顺序网络结构MNIST数据集Fashion MNIST数据集用Tensorflow API:t…

java计算机毕业设计基于安卓Android的掌上酒店预订APP

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把掌上酒店预订与现在网络相结合,利用java技术建设掌上酒店预订APP,实现掌上酒店预订的信息化。则对于进一步提高掌上酒店预订发展,丰富掌上酒店预订经验能起到不少的促进作用。 掌上酒店预订APP能够通过互联网得到广泛的…

基于风能转换系统的非线性优化跟踪控制(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

一、CDD在诊断开发中的作用

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CDD在诊断开发中的作用,欢迎各位朋友订阅、评论,可以提…

如何评价模型的好坏?

回归&#xff1a; MSE&#xff08;均方误差&#xff09;—— 判定方法&#xff1a;值越小越好&#xff08;真实值-预测值&#xff0c;平方之后求和平均&#xff09;RMSE&#xff08;均根方误差&#xff09;—— 判定方法&#xff1a;值越小越好&#xff08;MSE开根号&#xff…

Dijkstra最短路径算法

参考&#xff1a;(3条消息) Dijkstra算法图文详解_一叶执念的博客-CSDN博客_迪杰斯特拉算法 如图&#xff0c;假设图中共有n条路径&#xff08;如D-C-E&#xff09;&#xff0c;根据路径长度进行小到大排序。 1、起点到达某终点的距离是无穷符号&#xff0c;表示该起点还需要借…