核心思想是配置文件修改後不須要重啓服務就實現可用;
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的日誌
表示已經成功,咱們如今再來調一下路由配置的地址
大功告成;