分布式配置中心——config
Spring Cloud Config为分布式系统中的外部化配置提供服务器端和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment
和PropertySource
抽象,因此它们非常适合Spring应用程序,但可以与任何语言运行的任何应用程序一起使用。当应用程序通过部署管道从开发到测试再到生产时,您可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有内容。服务器存储后端的默认实现使用git,因此它可以轻松支持配置环境的标签版本,以及可用于管理内容的各种工具。
1、在GitHub创建项目
(1)、创建项目
(2)、本地克隆项目
(3)、创建application.yml
spring:
profiles:
active:
- dev
---
spring:
application:
name: config-server-dev
profiles: dev
---
spring:
application:
name: config-server-test
profiles: test
(4)、上传配置文件到GitHub
2、配置中心服务端
引入依赖
<!-- config-server 依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
配置文件:
bootstrap.yml(最高优先级)
server
port
spring
application
name
cloud
config
server
git
uri
application.yml
spring
application
name
启动类
/**
* 启动类
* @author qinzhitian<br>
* @date 2019年8月20日 下午2:53:42
*/
public class Application {
private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
LOGGER.warn("ConfigServer启动成功");
}
}
测试:http://config-server:4001/application-dev.yml
3、客户端:
引入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
配置文件:
bootstrap.yml(最高优先级)
spring
application
name
cloud
config
fail-fast
name
profile
label
uri
application.yml
spring
application
name
启动类
/**
* 启动类
* @author qinzhitian<br>
* @date 2019年8月20日 下午2:56:19
*/
public class Application {
private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
LOGGER.warn("ConfigClict启动成功");
}
}
测试:http://config-server:4001/springcloud-config-clict-dev.yml