当前位置: 首页 > news >正文

【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上的相关配置信息。

相关文章:

  • JAVA Spring MVC+Mybatis Spring MVC的工作流程*
  • 深入解析SpringMVC:从入门到精通
  • 嵌入式学习笔记 - STM32 使用一个外部触发同时启动两个定时器
  • turn.js与 PHP 结合使用来实现 PDF 文件的页面切换效果
  • stm32 DMA
  • Slidev集成Chart.js:专业数据可视化演示文稿优化指南
  • CAPL Class: TcpSocket (此类用于实现 TCP 网络通信 )
  • 电机试验平台:创新科技推动电动机研究发展
  • Windows/MacOS WebStorm/IDEA 中开发 Uni-App 配置
  • C 语言学习笔记(数组)
  • 使用UniApi调用百度地图API的需要注意的地方
  • asp.net core api RESTful 风格控制器
  • STM32之蜂鸣器和按键
  • 支持同步观看的媒体服务器GhostHub
  • SpringCloud微服务开发与实战
  • 初识计算机网络。计算机网络基本概念,分类,性能指标
  • 代码随想录60期day38
  • “分布形态“
  • Java 常用的Arrays函数
  • 初识仓颉编程语言:高效、简洁与创新的编程选择
  • 查幽门螺杆菌的这款同位素长期被海外垄断,秦山核电站实现突破
  • 湖北宜化拟斥资超32亿加价回购“弃子”,布局上游煤炭业务
  • “大型翻车现场”科技满满,黄骅打造现代化港口和沿海新城典范
  • 公元1058年:柳永词为什么时好时坏?
  • 金砖国家召开经贸联络组司局级特别会议,呼吁共同抵制单边主义和贸易保护主义
  • 国际能源署:全球电动汽车市场强劲增长,中国市场继续领跑