核心思想是配置文件修改后不须要重启服务就实现可用;
springboot 2.0.1.RELEASE
springcloud Finchley.RELEASE
1.搭建config-server工程
1.1加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
1.2编辑application.yml配置文件
server:
port: 8769
spring:
application:
name: spring-cloud-config-server
cloud:
config:
server:
git:
uri: # 配置git仓库的地址
search-paths: # git仓库地址下的相对地址,能够配置多个,用,分割。
username: # git仓库的帐号
password:
management:
endpoints:
web:
exposure:
include: refresh,health,info # 暴露的服务接口
1.3添加启动类

1.4测试运行

2.搭建config-client-zuul工程
2.1添加依赖
2.1.1
要加入config-client和zuul的依赖
2.1.2
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
2.2编辑配置文件
2.2.1bootstrap.properties
spring.cloud.config.name = spring-cloud-config
spring.cloud.config.profile = dev
spring.cloud.config.label = master
spring.application.name = api-gateway
#bootstrap.properties主要是配置server的链接信息
2.2.2application.yml
management:
endpoints:
web:
exposure:
include: refresh
#这个配置是暴露刷新接口;
注: bootstrap文件的执行优先级要高于application;咱们须要把config的链接信息放到bootstrap中;
2.3添加启动类

2.4在GitHub中编辑文件
2.4.1建立一个config-repo文件夹
里面能够根据不一样的环境放不一样的配置文件
2.4.2建立spring-cloud-config-dev.yml
2.5测试运行

2.6测试访问路由
2.6.1
在浏览器输入
会进入到路由配置的地址:
2.6.2修改配置文件路由配置的地址

不重启服务,咱们再请求一下
能够看到,并无发生任何的改变;
如今咱们请求一下刷新接口:
再请求一次配置的路由地址:
如今证实路由是能够刷新的;固然,这并非我想要的结果,咱们想要实现的是不用手动调接口刷新,那么咱们就要借助外部第三方的工具来帮助咱们刷新;
3.配置GitHub的webhooks实现配置文件提交后自动调刷新配置接口
3.1下载第三方软件,实现模拟域名

下载并解压,而后双击打开
输入命令 ngrok http 端口 会获得一个模拟的域名
3.2配置webhooks
打开settings的webhooks
配置上咱们的刷新接口地址,每次文件提交以后,webhooks会调用这个刷新接口;
注:本机默认地址是127.0.0.1,Mac地址GitHub也是访问不到的;咱们须要借助第三方软件模拟域名,达到容许外部系统访问;
3.3修改文件测试接口是否刷新成功

下面咱们看一下webhooks的日志
表示已经成功,咱们如今再来调一下路由配置的地址
大功告成;