springcloud Config配置中心

简介

服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。

SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml,上百个配置文件的管理.…
在这里插入图片描述
SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。

SpringCloud Config分为服务端和客户端两部分。

  • 服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。

  • 客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。

服务端使用:

将配置专门做成一个微服务与github连接,能够实时获取github上的配置信息。

       <!--config--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency>

application.yml


spring:application:name: cloud-config-center#############################config server配置###########################cloud:config:server:git:uri: https://github.com/q1052780722/springcloud-config.gitsearch-paths:- springcloud-config #仓库名username: xxxpassword: xxxlabel: master #分支名eureka:instance:hostname: cloud-gateway-serviceclient: #服务提供者provider注册进eureka服务列表内service-url:register-with-eureka: truefetch-registry: truedefaultZone: http://localhost:7001/eureka

主启动类:

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

git仓库所对应的文件
在这里插入图片描述

配置成功后,访问http://localhost:3344/master/config-test.yml即可读取到文件的内容。
也可以这样访问:http://localhost:3344/config-dev.yml 因为已经配置了master分支
在这里插入图片描述

客户端使用

客户端的yaml区别于服务端为:

 <!--config client--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency>

创建bootstrap.yml

bootstrap.yml与application.yml的区别
applicaiton.yml是用户级的资源配置项
bootstrap.yml是系统级的,优先级更加高
Spring Cloud会创建一个Bootstrap Context,作为Spring应用的Application Context的父上下文。
初始化的时候,BootstrapContext负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的Environment。
Bootstrap属性有高优先级,默认情况下,它们不会被本地配置覆盖。Bootstrap context和Application Context有着不同的约定,所以新增了一个bootstrap.yml文件,保证Bootstrap Context和Application Context配置的分离。

server:port: 3355spring:application:name: config-client#############################新增网关配置###########################cloud:config:label: master #分支名称name: config #配置文件的名称profile: dev #读取后缀的名称    读取:http://localhost:3344/master/config-devuri: http://localhost:3344####################################################################eureka:instance:client: #服务提供者provider注册进eureka服务列表内service-url:register-with-eureka: truefetch-registry: truedefaultZone: http://localhost:7001/eureka

controller:读取来自configServer的config.info

@RestController
public class ConfigClientController {@Value("${config.info}")private String configInfo;@GetMapping("/configInfo")public String getConfigInfo(){return configInfo;}
}

访问localhost:3355/configInfo可以观察到configInfo被成功注入。
在这里插入图片描述

动态刷新

当github上的配置文件改动后,客户端需要重启才能加载新的配置,这样会相当的麻烦。
需要搭配spring-boot-starter-actuator监测中心进行使用。

  1. 在controller类上加上@RefreshScope注解
@RestController
@RefreshScope
public class ConfigClientController {@Value("${config.info}")private String configInfo;@GetMapping("/configInfo")public String getConfigInfo(){return configInfo;}
}
  1. 在bootstrap.yml中暴露端口
# 暴露监控端口
management:endpoints:web:exposure:include: "*"

这样配置之后,只要在github上的配置文件改变后,向config client发送post请求就能加载新的配置文件。
curl -X POST “http://localhost:3355/actuator/refresh”

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入剖析pcap中的网络异常:TTL过期攻击、ARP中毒、TCP重传与重叠碎片等

网络流量数据包捕获是网络安全领域的重要部分&#xff0c;而pcap文件则是这一过程的常见载体。为了深入解析pcap文件中潜在的可疑网络流量&#xff0c;我们需要运用强大的网络安全威胁评估与审计工具。这些工具能够帮助我们捕捉、记录、检测和诊断网络中的数据传输问题&#xf…

软件测试|Django 入门:构建Python Web应用的全面指南

引言 Django 是一个强大的Python Web框架&#xff0c;它以快速开发和高度可扩展性而闻名。本文将带您深入了解Django的基本概念和核心功能&#xff0c;帮助您从零开始构建一个简单的Web应用。 什么是Django&#xff1f; Django 是一个基于MVC&#xff08;模型-视图-控制器&a…

STM32H5培训(一)总览

文章目录 1. 前言2. STM32H5系列MCU的特点和新功能包括性能提升、新外设和安全功能等3. STM32H5系列型号之间的区别和关键资源对比4. 性能和功能亮点6. 开发生态参考&#xff1a; 1. 前言 本篇主要介绍STM32H5系列MCU的特点和新功能&#xff0c;包括全新的M33内核、250M主频处…

网络安全之你的浏览器记录真的安全吗?

密码是每个人最私密的东西&#xff0c;轻易是不会展示给他人的&#xff0c;那么我如何能知道你电脑上浏览器里保存的密码呢&#xff1f;浏览器是大家在网上冲浪最常用的软件&#xff0c;在登录一些网站填写账号密码后&#xff0c;浏览器为了方便大家使用&#xff0c;会提示是否…

Objective-C中使用STL标准库Queue队列

1.修改.m文件为mm 2.导入queue头 #include<queue> 3.使用&#xff1a; #import <Foundation/Foundation.h> #include <cmath> #include <queue> using namespace std;int main(int argc, const char * argv[]) {autoreleasepool {NSLog("C标准…

【C语言题解】 | 101. 对称二叉树

101. 对称二叉树 101. 对称二叉树代码 101. 对称二叉树 这个题目要求判断该二叉树是否为对称二叉树&#xff0c;此题与上一题&#xff0c;即 100. 相同的树 这个题有异曲同工之妙&#xff0c;故此题可借鉴上题。 我们先传入需要判断二叉树的根节点&#xff0c;通过isSameTree()…

1.9.。。

1 有道云笔记 2 .cpp #include "mywidget.h" #include "ui_mywidget.h"myWidget::myWidget(QWidget *parent) :QWidget(parent),ui(new Ui::myWidget) {ui->setupUi(this);this->setWindowTitle("原神");this->setStyleSheet("…

【51单片机系列】串口通信模块

文章目录 一、计算机串行通信基础二、串行通信的基本概念2.1、异步通信与同步通信2.2、串行通信的传输方向2.3、串行通信常见的错误校验2.4、传输速率 三、串行通信接口标准3.1、RS-232C接口3.2、RS-422A3.3、RS-485接口 四、80C51的串行口4.1、80C51串行口的控制寄存器4.2、80…

Qt QLabel标签控件

文章目录 1 属性和方法1.1 文本1.2 对齐方式1.3 换行1.4 图像 2. 实例2.1 布局2.2 为标签添加背景色2.3 为标签添加图片2.4 代码实现 QLabeI是Qt中的标签类&#xff0c;通常用于显示提示性的文本&#xff0c;也可以显示图像 1 属性和方法 QLabel有很多属性&#xff0c;完整的可…

HCIP第一次实验

rip v2 配置完成 将rip v1 和rip v2 兼容&#xff08;在v1 v2 相接的随便哪一个接口&#xff09; 结果为&#xff1a; 远程控制访问配置&#xff1a; R2访问r7要求走r5去访问&#xff1a; 确定是出入端后配置端口&#xff1a;

定时器中断控制的独立式键盘扫描实验

#include<reg51.h> //包含51单片机寄存器定义的头文件 sbit S1P1^4; //将S1位定义为P1.4引脚 sbit S2P1^5; //将S2位定义为P1.5引脚 sbit S3P1^6; //将S3位定义为P1.6引脚 sbit S4P1^7; //将S4位定义为P1.7引脚 unsigned char keyval; /…

Vue3+Echarts:柱状图的图例(legend)不显示

一、问题 在使用Echarts绘制堆积柱状图的时候&#xff0c;想给柱状图添加图例&#xff0c;但是添加完后&#xff0c;图例不显示。 二、问题及解决 原因 这里图例不显示&#xff0c;是因为legend里面图例的文字内容跟series里每一项的name的内容不一致&#xff0c;必须得两者…