欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 【springcloud学习(dalston.sr1)】Config配置中心-ConfigServer端与Git通信(含源代码)(十三)

【springcloud学习(dalston.sr1)】Config配置中心-ConfigServer端与Git通信(含源代码)(十三)

2025/5/18 7:49:01 来源:https://blog.csdn.net/lichuangcsdn/article/details/148033169  浏览:    关键词:【springcloud学习(dalston.sr1)】Config配置中心-ConfigServer端与Git通信(含源代码)(十三)

该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍(含源代码)(一)

 springcloud学习(dalston.sr1)系统文章汇总如下:

【springcloud学习(dalston.sr1)】项目整体介绍(含源代码)(一)

【springcloud学习(dalston.sr1)】Eureka服务端集群的搭建(含源代码)(二)

【springcloud学习(dalston.sr1)】Eureka单个服务端的搭建(含源代码)(三)

【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)

【springcloud学习(dalston.sr1)】服务消费者通过restTemplate来访问服务提供者(含源代码)(五)

【springcloud学习(dalston.sr1)】Eureka 服务发现(含源代码)(六)

【springcloud学习(dalston.sr1)】Ribbon负载均衡(含源代码)(七)

【springcloud学习(dalston.sr1)】使用Feign实现接口调用(含源代码)(八)

【springcloud学习(dalston.sr1)】Hystrix服务熔断(含源代码)(九)

【springcloud学习(dalston.sr1)】Hystrix服务降级(含源代码)(十)

【springcloud学习(dalston.sr1)】Hystrix Dashboard服务监控(含源代码)(十一)

【springcloud学习(dalston.sr1)】Zuul路由访问映射规则配置及使用(含源代码)(十二)

【springcloud学习(dalston.sr1)】Config配置中心-ConfigServer端与Git通信(含源代码)(十三)

【springcloud学习(dalston.sr1)】Config配置中心-Configclient端通过和Config server端通信来获取配置文件信息(含源代码)(十四)

(一)对Spring cloud config的理解

通常情况下,springCloud会包含多个微服务,比如电商项目,可能包括商品服务、订单服务、库存服务、商家服务、物流服务、用户服务、登录服务等。每个服务都是一个独立的springboot项目。并且还包括eureka注册中心、zuul网关服务等,每个项目都有独立的application.yml配置文件,这样整个系统中就会出现大量的配置文件,如果全部靠手工独立维护,极为不便。spring cloud提供了Config Server来解决这个问题。通过spring cloud config,我们可以把配置文件全部放在git服务器上。并且项目中用到的配置,可以在启动时,借助config server,从git服务器进行拉取。

也即config分为server端和client端,访问的整体情况是 config client可以和config server进行通信,而config server可以和git服务器进行通信。这里我们首先讨论的是config server端如何与git进行通信。

(二)spring cloud config server端的搭建

(1)git远程仓库的创建

正如前面所说,我们将配置文件放在git服务器上进行管理,肯定需要有个git服务器,这里我选用的的是gitee(可以在浏览器中进行访问,我之前在gitee上面创建了一个microservicecloud-config1 项目,其访问地址为https://gitee.com/lichuangjava/microservicecloud-config1.git,如下图)。

为了给该仓库推送文件,我先将其clone到本地如下图,可以通过windows端的git工具来完成项目拉取,然后我们新增几个yml文件(需要注意的是文件必须是UTF-8格式,否则会出问题),然后通过git命令行工具再推送至远程仓库。

新增几个yml文件到本地后,首先可以通过git status来查看本地文件和git服务器的关联情况,然后通过git add . 可以将本地新增的文件进行添加到git待提交文件,然后通过git commit -m "注释",可以增加本次提交的注释信息,然后通过git push origin master则将文件推送到了远程仓库的master分支。然后在gitee页面进行刷新,即可看到提交的相关文件信息。这样我们git远程仓库就搭建好了。

(2)这里我们创建一个config server端的项目microservicecloud-config-3344,该项目的整体结构如下:

然后我们在POM文件中增加相关依赖

<?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>springcloud2025</artifactId><groupId>com.company</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>microservicecloud-config-3344</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.company</groupId><artifactId>microservicecloud-api</artifactId><version>${project.version}</version></dependency><!-- actuator监控信息完善 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- hystrix --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><!-- springcloud config server配置 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency></dependencies></project>

然后在项目的application.yml文件中增加相关配置信息

server:port: 3344spring:application:name: microservicecloud-configcloud:config:server:git:uri: https://gitee.com/lichuangjava/microservicecloud-config1.git#git@gitee.com:lichuangjava/microservicecloud-config1.git #git上面仓库名称#https://gitee.com/lichuangjava/microservicecloud-config.git

这里是通过spring.cloud.config.server.git.uri配置项指定了git的地址

然后我们创建一个启动类Config3344Application.java,并在启动类上增加@EnableConfigServer,以表明该项目是一个config server端工程。

package com.company.config;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;/*** config server端,用于和gitee.com进行通信,并从git服务器获取配置信息* http://config-3344.com:3344/application-dev.yml* http://config-3344.com:3344/application-test.yml*/
@SpringBootApplication
@EnableConfigServer
public class Config3344Application {public static void main(String[] args) {SpringApplication.run(Config3344Application.class, args);}
}

(三)config server端的使用

我们前面已经准备了一个application.yml上传至git服务器中,其内容如下,该配置文件中有dev环境和test环境,两种环境的配置项

接下来,我们启动config server端的项目microservicecloud-config-3344,然后在浏览器地址栏输入localhost:3344/application-dev.yml ,其中地址栏的application-dev.yml,application表示访问的是git服务器的application文件,而dev表示获取的是该配置文件的开发环境内容,如下图

当然,我们也可以通过localhost:3344/application-test.yml访问application.yml文件中的测试环境配置内容,如下图

而如果我们访问一个生成环境(注意配置文件中没有),比如http://localhost:3344/application-prod.yml,可以看到界面返回的信息中不包括任何dev和test环境的内容

由此可见,确实可以通过Config server实现和git之间的服务通信,返回git上的相关配置信息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词