Spring Cloud Consul作为配置中心实践

官网地址:https://docs.spring.io/spring-cloud-consul/docs/current/reference/html/#spring-cloud-consul-config

Consul 提供了一个键/值存储用于保存配置和其他元数据。Spring Cloud Consul Config 是 Spring Cloud Config Server和Client的一个替代方案。配置信息在特殊的“bootstrap”阶段被加载到 Spring Environment 中。配置默认存储在 /config 文件夹下。基于应用程序的名称(application’s name)和激活的配置文件( active profiles),会创建多个 PropertySource 实例,这模仿了 Spring Cloud Config 解析属性的顺序。例如,一个名为 “testApp” 并且使用 “dev” 环境的应用程序,将会有如下属性源被创建:

  • consul:/config/testApp-dev.properties
  • consul:/config/testApp.properties
  • consul:/config/application-dev.properties
  • consul:/config/application.properties
config/testApp,dev/
config/testApp/
config/application,dev/
config/application/

这意味着,对于这个名为 “testApp” 并且处在 “dev” 环境下的应用,Spring Cloud Consul Config 会按照上述顺序查找并加载配置信息,优先级从高到低,即先检查更具体的配置(包含应用名和环境的),再到更通用的配置。这样的设计允许灵活地根据不同环境和应用需求来组织和覆盖配置设置。

① pom引入依赖

<!--SpringCloud consul config-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-config</artifactId>
    <exclusions>
        <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

② bootstrap.yml配置

需要在application.yml 同级创建bootstrap.yml文件

spring:
  application:
    name: cloud-payment-service
    ####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
      config:
        profile-separator: '-' # default value is ",",we update '-'
        format: YAML

  # config/cloud-payment-service/data
  #       /cloud-payment-service-dev/data
  #       /cloud-payment-service-prod/data

③ Consul控制台创建文件

在如下界面点击create,创建config文件夹,以 / 结尾表示是文件夹

其

同理创建cloud-payment-service-dev文件夹

在这里插入图片描述

文件夹创建完毕如下所示:

在这里插入图片描述

cloud-payment-service-dev下我们创建配置信息:这里data没有/哦
在这里插入图片描述

④ 代码测试

主启动类如下:

@SpringBootApplication
@EnableDiscoveryClient
public class Main8001
{
    public static void main(String[] args)
    {
        SpringApplication.run(Main8001.class,args);
    }
}

controller如下:

@Value("${server.port}")
private String port;
@GetMapping(value = "/pay/get/info")
public String getInfoByConsul(@Value("${info}") String atguiguInfo)
{
    return "Info: "+atguiguInfo+"\t"+"port: "+port;
}

浏览器访问 http://localhost:8001/pay/get/info 就可以看到刚刚配置信息

刚

⑤ 动态刷新

此时我们修改data的配置信息,浏览器再次请求返回的内容是不变的。我们可以通过在主启动类添加注解来实现动态刷新:

@RefreshScope // 动态刷新

此时主启动类如下所示:

@SpringBootApplication
@EnableDiscoveryClient
@RefreshScope // 动态刷新
public class Main8001
{
    public static void main(String[] args)
    {
        SpringApplication.run(Main8001.class,args);
    }
}

默认需要等待55秒,这里我们可以修改其刷新时间:

spring:
  application:
    name: cloud-payment-service
    ####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
      config:
        profile-separator: '-' # default value is ",",we update '-'
        format: YAML
        watch:
          wait-time: 1 # 生产环境不建议修改

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

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

相关文章

从零到一打造自己的大模型:模型训练

前言 最近看了很多大模型&#xff0c;也使用了很多大模型。对于大模型理论似乎很了解&#xff0c;但是好像又缺点什么&#xff0c;思来想去决定自己动手实现一个 toy 级别的模型&#xff0c;在实践中加深对大语言模型的理解。 在这个系列的文章中&#xff0c;我将通过亲手实践…

Hadoop3.3.4 + HDFS Router-Based Federation配置

一、HDFS Router-based Federation 官方文档见&#xff1a; Apache Hadoop 3.4.0 – HDFS Router-based Federationhttps://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs-rbf/HDFSRouterFederation.html 二、集群规划 本次测试采用6台虚拟机创建了2套HDF…

Linux高并发服务器开发(四)进程间通信

文章目录 1 前言2 无名管道3 有名管道4 管道读写特点5 设置管道为非阻塞6 使用有名管道实现简单版本聊天7 共享存储映射7.1 mmap 存储映射函数7.2 共享映射实现父子进程通信7.3 共享映射实现无亲缘关系进程通信7.4 匿名映射实现父子进程通信 8 信号8.1 概念和特点8.2 信号的编号…

通用后台管理系统(一)——项目介绍

目录 二、文档结构 src文件夹&#xff1a; 三、技术和插件 1、Vue router 2、element-ui框架 3、样式插件less 4、vuex状态管理 5、axios.js 6、mock.js模拟数据 7、echarts图表工具 四、项目效果展示 总结 一、项目介绍 通用后台管理是采用vue2cli开发的项目&#…

国行版苹果Vision Pro即将发售 高昂定价吓退普通消费者?

2024年2月2日&#xff0c;苹果第一代空间计算设备Vision Pro在美国上市。6月28日&#xff0c;国行版苹果Vision Pro也将正式发售&#xff0c;别为256GB版29999元、512GB版31499元、1TB版32999元。不过从此前Vision Pro预售情况来看&#xff0c;Vision Pro的“杀手锏”在“价格”…

Arduino - 继电器

Arduino - 继电器 In a previous tutorial, we have learned how to turn on/off an LED. In this tutorial, we are going to learn how to turn on/off some kind of devices that use the high voltage power supply(such as a light bulb, fan, electromagnetic lock, lin…

# Kafka_深入探秘者(8):kafka 高级应用

Kafka_深入探秘者&#xff08;8&#xff09;&#xff1a;kafka 高级应用 一、kafka 消费组管理 1、kafka 命令行工具 参考官网: http://kafka.apache.org/22/documentation.html 2、kafka 消费组管理&#xff1a;查看消费组 # 切换到 kafka 安装目录 cd /usr/local/kafka/…

WIFI7技术之多重资源单元(Multi-RU)技术

什么是WIFI7及Multi-RU技术&#xff1f; 随着无线通信技术的不断进步&#xff0c;WiFi技术也在不断演变。WIFI7&#xff0c;即IEEE 802.11be&#xff0c;是下一代无线网络标准。它旨在提供更高的带宽、更低的延迟和更好的用户体验。WIFI7引入了许多新特性&#xff0c;其中之一…

PostgreSQL 连接器:在 SeaTunnel 中的应用与优势

在现代企业中&#xff0c;数据已经成为核心资产&#xff0c;基于开源数据集成平台SeaTunnel&#xff0c;工程师如何高效地连接和管理这些数据源&#xff0c;直接关系到企业的竞争力和运营效率。 本文将给大家介绍如何通过 JDBC PostgreSQL 数据源连接器&#xff0c;在 SeaTunne…

使用Flink CDC实时监控MySQL数据库变更

在现代数据架构中&#xff0c;实时数据处理变得越来越重要。Flink CDC&#xff08;Change Data Capture&#xff09;是一种强大的工具&#xff0c;可以帮助我们实时捕获数据库的变更&#xff0c;并进行处理。本文将介绍如何使用Flink CDC从MySQL数据库中读取变更数据&#xff0…

Docker部署常见应用之Oracle数据库

文章目录 安装部署参考文章 安装部署 使用Docker安装Oracle数据库是一个相对简便的过程&#xff0c;可以避免在本地环境中直接安装Oracle数据库的复杂性。 安装Docker环境&#xff1a;确保你的系统上已经安装了Docker&#xff0c;并且Docker服务正在运行。具体的安装方法可以根…

TikTok网页版使用指南:如何登录TikTok网页版?

海外版抖音TikTok&#xff0c;已成为连接全球观众的重要平台。据统计&#xff0c;在美国&#xff0c;TikTok的用户数量已达到近1.3亿&#xff0c;并且在国外的95后用户群体中很受欢迎。 TikTok网页版也提供了一个广阔的平台&#xff0c;让品牌和创作者在电脑端与全球观众互动&…

数据结构与算法基础(王卓)--学习笔记

1 数据结构分类 1.1 逻辑结构分类 集合结构线性结构&#xff1a;线性表、栈、队列、串树形结构图形结构 1.2 物理结构分类 逻辑结构在计算机中的真正表示方式&#xff08;又称为映射&#xff09;称为物理结构&#xff0c;也可叫做存储结构 顺序存储结构&#xff1a;数组链…

【Unity】Excel配置工具

1、功能介绍 通过Excel表配置表数据&#xff0c;一键生成对应Excel配置表的数据结构类、数据容器类、已经二进制数据文件&#xff0c;加载二进制数据文件获取所有表数据 需要使用Excel读取的dll包 2、关键代码 2.1 ExcelTool类 实现一键生成Excel配置表的数据结构类、数据…

Centos7源码方式安装sqle及开发相关

官方文档-源码安装 操作系统&#xff1a;centos:7.9,everything (DVD版应该也可以) (在ubuntu22.04装了两天之后乖乖开了一个新Centos7虚拟机) 镜像&#xff1a;清华大学开源软件镜像站 centos/7.9.2009 安装git sudo yum update -y sudo yum install -y git git --version安…

Sonia索尼娅:填补心理健康护理缺口的创新人工智能治疗师应用APP

聊天机器人可以取代人类治疗师吗&#xff1f;一些初创公司和患者声称他们可以。但这并不是完全确定的科学。 一项引人注目的研究发现&#xff0c;高达80%的使用OpenAI的ChatGPT寻求心理健康建议的人认为&#xff0c;这项技术可作为传统治疗的理想替代方案。与此同时&#xff0…

Android高级面试_2_IPC相关

Android 高级面试-3&#xff1a;语言相关 1、Java 相关 1.1 缓存相关 问题&#xff1a;LruCache 的原理&#xff1f; 问题&#xff1a;DiskLruCache 的原理&#xff1f; LruCache 用来实现基于内存的缓存&#xff0c;LRU 就是最近最少使用的意思&#xff0c;LruCache 基于L…

国外8年联培访学迎来逆袭|国家最高科学技术奖薛其坤成长史

国家最高科技奖花落薛其坤&#xff0c;他是该奖项史上最年轻得主。在追踪其成长史的过程中&#xff0c;知识人网小编注意到&#xff1a;薛其坤的学习研究开局并不顺利&#xff0c;直至到日本做联合培养博士研究生&#xff0c;他才真正迎来了自己学术生涯的重要转折点。后来到美…

面试相关-接口测试常问的问题

1.为什么要做接口测试 (1)现在大多系统都是前后端分离的项目,前端和后端的进度可能不一样,那为了尽早的进入测试,前端界面没有开发完成的情况下,只要后端的接口开发完了,就可以提前做接口测试了; (2)基于安全考虑,只依赖前端进行限制,已经完全不满足系统的安全性…

ELK日志集成

https://www.bilibili.com/video/BV1x94y1674x/?buvidXY705117E90F73A790429C9CFBD5F70F22168&vd_source939ea718db29535a3847d861e5fe37ef