Spring Cloud Config配置中心版本踩坑

前言

由于此次的客户只要求config配置中心使用直连模式,对高可用要求不高,故只需要配置一个config-server即可,然后在各个client端接入config-client的依赖即可

一、config-server

pom依赖

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

需要注意的是,springboot2.0.x版本对应的cloud版本是Finchley的版本

我这里是2.0.5的版本,对应的 cloud版本是:

<spring-cloud.version>Finchley.SR2</spring-cloud.version>

这里特别注意,2.0.x的版本,config的版本最多支持到2.0.5,笔者在此处踩坑了,一直用2.0.6编译都不通过

补充一点:后面我又尝试了<spring-cloud.version>Finchley.SR4</spring-cloud.version>的版本,可以兼容2.0.6的版本

另外,如果是2.1.x的版本,对应的cloud版本是:

<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>

bootstrap.yml文件配置

server:
  port: 8011
spring:
  application:
    name: spring-cloud-config-server
  cloud:
    config:
      server:
        git:
          uri: git@gitlab.test.com:order-center/spring-cloud-config-repo.git
          ignoreLocalSshSettings: true
          cloneOnStart: true
#          hostKey: gitlab.deepexi.top #当指定hostKeyAlgorithm时需要加上
#          hostKeyAlgorithm: ssh-rsa
          privateKey: |
                      -----BEGIN RSA PRIVATE KEY-----
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                      ...
                      -----END RSA PRIVATE KEY-----

 启动类加注解

@SpringBootApplication
@EnableConfigServer
public class ConfigServer {

二、config-client

pom依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

bootstrap.yml文件配置

spring:
  application:
    name:  order
  profiles:
    active: dev
  cloud:
    config:
      uri: http://localhost:8011 # config server地址
      label: master #配置文件的Git项目地址对应的分支
      #      fail-fast: true
      retry:
        initial-interval: 2000
        max-interval: 10000
        multiplier: 2
        max-attempts: 10

在使用到的地方配置注解,这里以test接口为例

@SpringBootApplication
@RefreshScope
@RestController
public class StartupApplication {

    @Value("${spring.datasource.url}")
    private String datasourceUrl;

    @RequestMapping("/test")
    public String home() {
        return datasourceUrl;
    }

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

测试

访问localhost:8080/test 即可返回在git仓库地址配置spring.datasource.url属性的信息


版权声明:本文为qq_25268441原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。