在Spring Cloud Config Github配置中心

关于Spring Cloud系列我们其实讲解了很多,但是这里我们介绍一下Spring Cloud Config,它是一个解决分布式系统的配置管理方案,他包含了Client 和 Server 两个部分,server提供配置文件的存储,以接口的方式将配置文件内容提供出去,Client通过接口获取相关数据,并依据数据初始化自己的应用,Spring Cloud 使用git或者svn存放配置文件,默认情况下使用git。

我们第一步,在github上创建一个文件夹Springcloud-config用来存放配置文件,我们可以创建三配置文件,分别如下:

//开发环境
springcloud-config-dev.properties
//测试环境
springcloud-config-test.properties
//生产环境
springcloud-config-pro.properties

之后我们为每个配置文件都写一个springcloud.miaow,属性值分别是,你好,miaow-dev/test/pro。

springcloud:miaow: hello,miaow-dev
springcloud:miaow: hello,miaow-test
springcloud:miaow: hello,miaow-pro

这个是我们正常的开发逻辑,但是为了不一样,我采用我自己的方式进行,如下图所示我在gitee上进行
在这里插入图片描述

在这里插入图片描述

server端

pom.xml文件

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springCloud</artifactId><groupId>com.miaow</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>spring-cloud-config-git</artifactId><name>spring-cloud-config-git</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>

配置相关文件Application.yml

server:port: 3421
spring:application:name: spring-cloud-config-servercloud:config:server:git:uri: https://github.com/ # git仓库的地址search-paths: /**/springcloud-config-server  # git仓库地址下的相对地址,可以配置多个,用,分割。username: #Git仓库用户名password: #Git仓库密码

启动类:

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

客户端Client

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springCloud</artifactId><groupId>com.miaow</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>spring-cloud-config-git</artifactId><name>spring-cloud-config-git</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>

配置文件Application.yml

注意这个是我们作为客户端的配置文件,可以进行多个添加,我们根据Spring Boot解析配置文件的先后顺序分别创建两个文件:
application.yml和bootstrap.properties。

application
server:port: 4322
spring:application:name: spring-cloud-config-client
bootstrap
spring.cloud.config.name=springcloud-config # 如果以我的方式,springcloud-zuul-dev。
spring.cloud.config.profile=dev
spring.cloud.config.uri=http://localhost:8080/
spring.cloud.config.label=master
spring.application.name:对应{application}部分
spring.cloud.config.profile:对应{profile}部分
spring.cloud.config.label:对应git的分支。如果配置中心使用的是本地存储,则该参数无用
spring.cloud.config.uri:配置中心的具体地址
spring.cloud.config.discovery.service-id:指定配置中心的service-id,便于扩展为高可用配置集群。

启动类

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

创建一个控制层

@RestController
public class HelloController {@Value("${springcloud.miaow}")private String hello;@RequestMapping("/hello")public String from() {return this.hello;}
}

之后我们启动项目并访问:http://localhost:4322/hello

如果返回:hello,miaow-dev,,说明已经正确的从server端获取到了参数。到此一个完整的服务端提供配置服务,客户端获取配置参数的例子就完成了。

将配置文件上传到GitHub仓库中,按照以下格式命名

{application}-{profile}.properties

结束

使用GitHub作为配置中心的好处如下:

  • 集中管理配置文件:将所有应用程序的配置文件存储在一个地方,方便管理和维护。
  • 动态刷新配置:当配置文件发生变化时,Spring Cloud应用程序可以自动获取最新的配置,无需重启应用程序。
  • 安全性:GitHub提供了访问控制和身份验证功能,可以保证配置文件的安全性。
  • 可扩展性:可以使用Git的分支和标签功能,为不同的环境和版本管理不同的配置文件。
  • 可视化管理:可以使用GitHub的Web界面,方便地查看和编辑配置文件。

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

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

相关文章

基于人工智能的电力设备老化和退化评估

随着电力设备的使用时间的增长&#xff0c;其性能会逐渐下降&#xff0c;这就是所谓的老化和退化。这种老化和退化不仅会影响电力设备的正常运行&#xff0c;还可能对电力系统的安全和稳定产生严重的影响。因此&#xff0c;对电力设备的老化和退化进行评估&#xff0c;以便及时…

一天一个设计模式---工厂方法

概念 工厂模式是一种创建型设计模式&#xff0c;其主要目标是提供一个统一的接口来创建对象&#xff0c;而不必指定其具体类。工厂模式将对象的实例化过程抽象出来&#xff0c;使得客户端代码不需要知道实际创建的具体类&#xff0c;只需通过工厂接口或方法来获取所需的对象。…

【Web】 CSS引用方式

前言 想用CSS修饰网页,就需要在HTML文档中引入CSS。 CSS提供了4种引用方式,分别是行内式、内嵌式、外链式和导入式。 1. 行内式 行内式也被称为内联式,可以通过style属性设置标签的样式。行内式基本语法格式如下: <标签名 style=“属性1:属性值1; 属性2:属性值2; 属性…

数据库原理与应用期末复习大纲

数据库原理与应用期末复习大纲 1. 数据库系统组成。 ​ 数据库系统&#xff08;DataBase System&#xff0c;DBS&#xff09;是采用了数据库技术的计算机系统&#xff0c;一般由数据库、数据库管理 系统&#xff08;及相关使用工具&#xff09;、应用系统、数据库管理员构成。…

《矩阵分析》笔记

来源&#xff1a;【《矩阵分析》期末速成 主讲人&#xff1a;苑长&#xff08;5小时冲上90&#xff09;】https://www.bilibili.com/video/BV1A24y1p76q?vd_sourcec4e1c57e5b6ca4824f87e74170ffa64d 这学期考矩阵论&#xff0c;使用教材是《矩阵论简明教程》&#xff0c;因为没…

Qt中,信号与槽的原理及观察者模式的应用

信号与槽的原理 在Qt中&#xff0c;信号与槽机制是一种用于对象之间通信和事件处理的机制。它基于观察者模式&#xff0c;通过发射信号和连接槽函数来实现对象之间的通信。 信号是一种特殊的成员函数&#xff0c;用于发射事件或通知其他对象发生了某个特定的操作或状态变化。…

Linux和windows进程同步与线程同步那些事儿(一)

本章&#xff0c;先作为一个综述&#xff0c;或者说是咱么聊聊进程同步与线程同步这些事儿的一个概述。具体的实现&#xff0c;在接下来的系列咱们逐个的共同学习和讲解。彻彻底底的吃透这一块。 一、线程同步 1.1 windows下线程同步 在Windows中&#xff0c;线程同步可以通…

全球企业绿色供应链数据(含CITI指数和CATI指数,2014-2023年)

数据简介&#xff1a;发文趋势与主题分布 数据来源&#xff1a;公众环境研究中心&#xff08;IPE&#xff09; 时间跨度 CITI指数&#xff1a;2014-2023年&#xff1b; CATI指数&#xff1a;2021-2023年 数据范围&#xff1a;品牌型企业&#xff0c;温室气体重点排放行业的上…

某市公共资源交易网

目标网站首页&#xff1a;aHR0cDovL2dnenkuendmd2IudGouZ292LmNu/ 分析页面&#xff1a;aHR0cDovL2dnenkuendmd2IudGouZ292LmNuL3h3engvaW5kZXhfMi5qaHRtbA 点击前URL http://ggzy.zwfwb.tj.gov.cn:80/zwyw/1030977.jhtml 点击后URL http://ggzy.zwfwb.tj.gov.cn/zwyw/PtP89W…

4_1二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 Answer- 方法一&#xff1a;深度优先递归 核心 &#xff1a; n1 maxdep(dp->left); n2 maxdep(dp->right); return (…

Kettle Local引擎使用记录(二):问题记录及解决方法

Kettle Local &#x1f4da; 前言⁉️问题记录❓问题一&#xff1a;Database type not found!…database type with plugin id [Oracle] couldnt be found!❕原因&#xff1a;没有初始化Kettle环境❗解决&#xff1a;添加监听器&#xff0c;进行Kettle环境初始化 ❓问题二&…

Spring 见解 7 基于注解的AOP控制事务

8.基于注解的AOP控制事务 8.1.拷贝上一章代码 8.2.applicationContext.xml <!-- 开启spring对注解事务的支持 --> <tx:annotation-driven transaction-manager"transactionManager"/> 8.3.service Service Transactional(readOnlytrue,propagation Pr…

需求跟踪矩阵(RTM)是什么

什么是可追溯性矩阵&#xff1f; 可追溯性矩阵是一个文档&#xff0c;它与需要多对多关系以检查关系的完整性的任何两个基线文档相关联。它用于跟踪需求并检查是否满足当前项目需求。 什么是需求追踪矩阵&#xff1f; 需求可追溯性矩阵&#xff08;RTM&#xff09;是一个文档…

自动化软件测试流程的七个步骤和内容

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;软件测试面试题分享&#xff1a; 1000道软件测试面试题及答案&#x1f4e2;软件测试实战项目分享&#xff1a; 纯接口项目-完…

java 创建一个可执行的jar包小程序

第1步&#xff1a;写好代码 public class Main {public static void main(String[] args) {String str "hahah";if (StringUtils.isBlank(str)) {System.out.println(str);}System.out.println("Hello world!");} }第2步&#xff1a;设置 Artifact 选择入…

以俯视的姿态看欧系数学2.哥猜绝对不成立、费马猜想一定成立

欧洲的数学权威如欧拉、莱布尼茨、康托尔等在中国数学界都是图腾级大佬&#xff0c;中国的数学人感觉他们个个高山仰止、连正视的勇气都没有&#xff1b;我的感觉相反&#xff0c;我一直以俯视的姿态对待这些被捧成了神的人物&#xff0c;我不仅不高看他们&#xff0c;从留存的…

实验8 分析HTTP协议和DNS

实验8 分析HTTP协议和DNS 一、 实验目的及任务 熟悉并掌握wireshark的基本操作,了解网络协议实体间的交互以及报文交换。分析HTTP协议分析DNS协议二、 实验设备 与因特网连接的计算机网络系统;主机操作系统为Windows;wireshark等软件。 三、 实验步骤 (一) HTTP分析 1、…

OpenCV安装概述

预构建版本 在许多情况下&#xff0c;您可以找到满足您需求的 OpenCV 预构建版本。 OpenCV 核心团队的软件包 每个版本都会发布使用默认参数和最新编译器构建的适用于 Android、iOS 和 Windows 的包&#xff0c;它们不包含opencv_contrib模块。 GitHub 版本&#xff1a;Rele…

【netstat】

netstat netstat Proto是协议&#xff0c;TCP、UDP Recv-Q表示网络接收队列 Send-Q表示网络发送队列&#xff0c;没有ack的数据 Local Address本地ip地址和端口 Foreign Address服务器的ip和端口 State连接状态 State的种类&#xff1a; Established-活跃的连接 Listen-等待连…

软件测试|Python中的变量与关键字详解

简介 在Python编程中&#xff0c;变量和关键字是非常重要的概念。它们是构建和控制程序的基本要素。本文将深入介绍Python中的变量和关键字&#xff0c;包括它们的定义、使用方法以及一些常见注意事项。 变量 变量的定义 变量是用于存储数据值的名称。在Python中&#xff0…