上一篇文章中,我们主要介绍了以下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远程
启动服务访问:
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到远程仓库
准备工作完成,下面开始搭建客户端
- 新建客户端项目,添加依赖
<!-- 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>
- 编写配置文件
编写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
- 编写启动类
@SpringBootApplication
public class ConfigClient_3355 {
public static void main(String[] args) {
SpringApplication.run(ConfigClient_3355.class,args);
}
}
- 编写测试方法
获取配置的服务启动端口
@RestController
public class ConfigController {
@Value("${server.port}")
private String port;
@GetMapping("/config")
public String getConfig(){
return "服务在端口:" + port + "启动!";
}
}
启动服务端及客户端,访问http://localhost:8081/config
修改配置为test,访问http://localhost:8082/config
至此SpringCloud Config的C\S环境搭建完成
源码地址:下载地址