一、Config概述
Spring Cloud Config 解决了在分布式场景下多环境配置文件的管理和维护
好处:
-
集中管理配置文件
-
不同环境不同配置,动态化的配置更新
-
配置信息改变时,不需要重启即可更新配置信息到服务
二、Config 快速入门
1、使用gitee创建远程仓库,上传配置文件config-dev.yml
2、搭建 config-server 模块
pom
<!-- config-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
ConfigServerApp
package com.liming.config;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer // 启用config server功能
public class ConfigServerApp {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApp.class,args);
}
}
application.yml(编写配置,设置 gitee 远程仓库地址)
server:
port: 9527
spring:
application:
name: config-server
# spring cloud config
cloud:
config:
server:
# git 的 远程仓库地址
git:
uri: https://gitee.com/bitliming/springcloud-config.git
label: master # 分支配置
3、测试访问远程配置文件
http://localhost:9527/master/provider-dev.yml
config-client: provider
1、导入 starter-config 依赖
<!--config client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2、配置config server 地址,读取配置文件名称等信息(bootstrap.yml)
# 配置config-server地址
# 配置获得配置文件的名称等信息
spring:
cloud:
config:
# 配置config-server地址
uri: http://localhost:9527
# 配置获得配置文件的名称等信息
name: provider # 文件名
profile: dev # profile指定, config-dev.yml
label: master # 分支
3、启动测试
http://localhost:8000/goods/findById/9
三、Config 集成Eureka
config-client配置:
pom
<!-- eureka-client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
ProviderApp
@EnableEurekaClient
bootstrap.yml
# 配置config-server地址
# 配置获得配置文件的名称等信息
spring:
cloud:
config:
# 配置config-server地址
#uri: http://localhost:9527
# 配置获得配置文件的名称等信息
name: config # 文件名
profile: dev # profile指定, config-dev.yml
label: master # 分支
discovery:
enabled: true
service-id: CONFIG-SERVER
management:
endpoints:
web:
exposure:
include: '*'
config-server配置:
pom
<!-- eureka-client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
ConfigServerApp
@EnableEurekaClient
application.yml
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
测试: