使用Spring Cloud Config 统一管理微服务配置

一,为什么要统一管理微服务配置


image.png

二,Spring Cloud Config简介


image.png

三,案例
一,编写Config Server
1,在Git仓库新建几个配置文件。
config.properties
config-dev.properties
config-pro.properties
config-test.properties
内容分别是:
profile=default-1.0
profile=dev-1.0
profile=pro-1.0
profile=test-1.0

2,创建Maven工程并添加以下依赖

org.springframework.cloud
spring-cloud-config-server

3,编写启动类,并添加@EnableConfigServer
@SpringBootApplication
@EnableConfigServer //声明config server
public class MovieConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(MovieConfigServerApplication.class, args);
}
}

4,编写配置文件
server:
port: 7070
spring:
application:
name: movie-config-server
cloud:
config:
server:
git:
uri: http://192.168.12.129:10101/r/GoldRecovery.git #远程仓库地址
username:
password:
default-label: dev_test #默认分支
search-paths: /dev_test/gold-recycle-service/src/main/resources/configs #配置文件所在的根目录

5,Config的Server端点


image.png

二,编写Config Client
1,新建Maven工程并添加以下依赖

org.springframework.boot
spring-boot-starter-actuator


org.springframework.boot
spring-boot-starter-web


org.springframework.cloud
spring-cloud-config-server

2,创建一个基于Spring Boot的启动类
@SpringBootApplication
public class MovieConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(MovieConfigClientApplication.class, args);
}
}

3,编写application.yml配置文件
server:
port: 7071

4,编写bootstrap.yml配置文件

spring cloud 有一个引导上下文概念,引导上下文加载bootstrap.*中的属性

配置在bootstrap.中的文件具有更高的优先级,因此配置不能放在application.中,以免被覆盖

spring:
application:
name: config #对应config-server中所获取的配置文件中的{application}
cloud:
config:
uri: http://localhost:7070/ #指定config-server的地址
profile: dev
label: dev_test #git仓库分支

5,编写Controller
@RestController
public class ConfigClientController {
@Value("${profile}")
private String profile;

@GetMapping("/profile")
public String hello(){
    return profile;
}

}

你可能感兴趣的:(使用Spring Cloud Config 统一管理微服务配置)