欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringCloud config分布式配置(二)服务端和客户端的搭建

程序员文章站 2022-07-12 13:18:19
...

上一篇文章中,我们主要介绍了以下Git环境的搭建,其中我们说到Spring Cloud Config是一个C\S的架构,所以我们还需要在我们的分布式架构中搭建一下Spring Cloud Config的服务器端和客户端。

有不清楚环境搭建的同学可以看一下上一篇文章:SpringCloud config分布式配置(一) Git环境搭建

SpringCloud Config服务端搭建

1)新建项目,引入必要依赖

	  <!-- spring boot web启动器 -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <!-- 热部署依赖 -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-devtools</artifactId>
      </dependency>
      <!-- 监控信息 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
      <!--  Config server 依赖 -->
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-config-server</artifactId>
          <version>2.1.6.RELEASE</version>
      </dependency>

2)编写配置文件

server:
  port: 3344

spring:
  application:
    name: config-server
  cloud:
    #连接远程仓库
    config:
      server:
        git:
          #远程https请求地址
          uri: https://gitee.com/fyy123/springcloud-config-10000.git
          order: 1
#        svn:
#          uri:  #svn地址
#          order: 2
#          username: #svn用户名
#          password: #svn密码

3)配置主启动类

@SpringBootApplication
@EnableConfigServer //开启config 服务
public class Config_Server_3344 {
    public static void main(String[] args) {
        SpringApplication.run(Config_Server_3344.class,args);
    }
}

4)启动测试
HTTP服务具有以下格式的资源:

<!-- application配置文件名,profile环境**, label是可选的git标签(默认为“master”)-->
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

git远程
SpringCloud config分布式配置(二)服务端和客户端的搭建
启动服务访问:
http://localhost:3344/application/test/master

{"name":"application",
"profiles":["test"],
"label":"master",
"version":"d01455a2208fbbd0654f0a5d1b84ff3b1edd387a",
"state":null,
"propertySources":[
	{"name":"https://gitee.com/fyy123/springcloud-config-10000.git/application.yml (document #2)",
	"source":{
		"spring.profiles":"test",
		"spring.application.name":"springcloud-config"}
	},
	{"name":"https://gitee.com/fyy123/springcloud-config-10000.git/application.yml (document #0)",
	"source":{
		"spring.profiles.active":"dev"}
	}]
}

http://localhost:3344/application-test.yml

spring:
  application:
    name: springcloud-config
  profiles:
    active: dev

可以看出访问的连接不一样,返回的信息页不一样,但是需要的配置都拿到了。

SpringCloud Config客户端搭建

为了更直观的了解客户端的使用,我们在配置中心的项目中新建一个客户端的配置文件,上传到Git远程仓库
配置文件内容

spring:
  profiles:
    active: dev

---
server:
  port: 8081
spring:
  profiles: dev
  application:
    name: springcloud-config-dev

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7003/eureka/

---
server:
  port: 8082
spring:
  profiles: test
  application:
    name: springcloud-config-test

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7003/eureka/

文件提交命令:

git add .   //提交当前目录所有文件
git status  //查看提交文件状态
git commit -m ""  //提交到本地缓存
git push origin master //push到远程仓库

SpringCloud config分布式配置(二)服务端和客户端的搭建
准备工作完成,下面开始搭建客户端

  1. 新建客户端项目,添加依赖
<!-- spring boot web启动器 -->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <!-- 热部署依赖 -->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
 </dependency>
 <!-- 监控信息 -->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
 </dependency>
 <!--  Config依赖 -->
 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-config</artifactId>
     <version>2.1.6.RELEASE</version>
 </dependency>
  1. 编写配置文件
编写bootstarap.yml
##系统级别的配置,根配置
spring:
  cloud:
    config:
      #http://localhost:3344/label/config-client-dev.yml
      name: config-client  #需要读取的资源名称,不需要后缀
      profile: dev  #环境
      label: master #git分支
      uri: http://localhost:3344
编写application.yml
##用户级别的配置
spring:
  application:
    name: config-client-3355
  1. 编写启动类
@SpringBootApplication
public class ConfigClient_3355 {

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

}
  1. 编写测试方法
    获取配置的服务启动端口
@RestController
public class ConfigController {

    @Value("${server.port}")
    private String port;

    @GetMapping("/config")
    public String getConfig(){
        return "服务在端口:" + port + "启动!";
    }

}

启动服务端及客户端,访问http://localhost:8081/config
SpringCloud config分布式配置(二)服务端和客户端的搭建
修改配置为test,访问http://localhost:8082/config
SpringCloud config分布式配置(二)服务端和客户端的搭建
至此SpringCloud Config的C\S环境搭建完成

源码地址:下载地址