本篇內(nèi)容主要講解“Spring Cloud Config客戶端怎么配置”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Spring Cloud Config客戶端怎么配置”吧!
目前創(chuàng)新互聯(lián)公司已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、全州網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
在前面幾篇關(guān)于Spring Cloud Config配置中心的文章中,我們在config-client中配置config-server地址的時候都是直接將地址寫死,這種方式顯然不夠靈活,有的小伙伴可能已經(jīng)想到了,這里我們可以結(jié)合eureka注冊中心,然后在配置的時候直接使用服務(wù)名即可,OK,那我們對之前的項目稍加改造吧。
這里的改造都是非常簡單的,服務(wù)端改造和客戶端改造都是分三步走:1.添加依賴;2.添加注解;3.修改application.properties.
首先我們在config-server中添加如下依賴:
org.springframework.cloud spring-cloud-starter-eureka
然后在config-server的入口類上添加@EnableDiscoveryClient注解,表示這是一個Eureka客戶端,如下:
@SpringBootApplication @EnableConfigServer @EnableDiscoveryClient public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
最后在application.properties中配置eureka注冊中心地址:
eureka.client.service-url.defaultZone=http://localhost:1111/eureka/
至此,我們的config-server就配置成功了。
config-client改造第一步也是先添加依賴,如下:
org.springframework.cloud spring-cloud-starter-eureka
然后入口類添加@EnableDiscoveryClient注解,如下:
@SpringBootApplication @EnableDiscoveryClient public class ConfigClientApplication { public static void main(String[] args) { SpringApplication.run(ConfigClientApplication.class, args); } }
最后修改配置文件,如下:
spring.application.name=app # dev根據(jù)具體情況來修改 spring.cloud.config.profile=dev spring.cloud.config.label=master eureka.client.service-url.defaultZone=http://localhost:1111/eureka/ spring.cloud.config.discovery.enabled=true spring.cloud.config.discovery.service-id=config-server server.port=2008
關(guān)于這個配置文件我說如下三點:
1.eureka.client.service-url.defaultZone設(shè)置了注冊中心的地址,將config-client注冊到eureka注冊中心中去
2.spring.cloud.config.discovery.enabled表示開啟通過服務(wù)名來訪問config-server
3.spring.cloud.config.discovery.service-id=config-server則表示config-server的服務(wù)名
OK,經(jīng)過以上的改造之后,此時我們分別啟動eureka服務(wù)注冊中心、config-server、config-client,然后訪問http://localhost:1111,可以看到兩個應(yīng)用都已經(jīng)注冊成功了:
然后繼續(xù)測試config-client的/sang接口,結(jié)果如下:
沒問題。
好了,服務(wù)化配置中心構(gòu)建成功。
不作任何額外配置的情況下,失敗響應(yīng)有點遲鈍,舉個簡單的例子,關(guān)掉config-server,我們直接啟動config-client,此時啟動會報錯,但是報錯時間較晚,報錯的時候系統(tǒng)已經(jīng)打印了許多啟動日志了,如果我們希望在啟動失敗時能夠快速響應(yīng),方式很簡單,config-client中添加如下配置即可:
spring.cloud.config.fail-fast=true
此時不啟動config-server直接啟動config-client依然會報錯,但是我們看到報錯時間較早,系統(tǒng)都沒打印幾條啟動日志。
如果由于網(wǎng)絡(luò)抖動等原因?qū)е耤onfig-client在啟動時候訪問config-server沒有訪問成功從而報錯,這顯然是不劃算的,遇到這種情況我們希望config-client最好能重試幾次,重試機制在這里也是受支持的,添加重試機制的方式很簡單,引入如下兩個依賴:
org.springframework.retry spring-retry org.springframework.boot spring-boot-starter-aop
引入依賴就OK了,不用做任何額外配置(當然要確保失敗快速響應(yīng)已開啟),此時我們再嘗試不啟動config-server直接啟動config-client,得到的啟動日志如下:
我們看到,config-client一共嘗試了六次去訪問config-server,六次都失敗了才拋異常。
和重試機制相關(guān)的配置有如下四個:
# 配置重試次數(shù),默認為6 spring.cloud.config.retry.max-attempts=6 # 間隔乘數(shù),默認1.1 spring.cloud.config.retry.multiplier=1.1 # 初始重試間隔時間,默認1000ms spring.cloud.config.retry.initial-interval=1000 # 最大間隔時間,默認2000ms spring.cloud.config.retry.max-interval=2000
有的時候,我動態(tài)的更新了Git倉庫中的配置文件,那么我如何讓我的config-client能夠及時感知到呢?方式很簡單,首先在config-client中添加如下依賴:
org.springframework.boot spring-boot-starter-actuator
該依賴中包含了/refresh端點的實現(xiàn),我們將利用這個端點來刷新配置信息。然后需要在application.properties中配置忽略權(quán)限攔截:
management.security.enabled=false
OK,配置好之后,啟動eureka注冊中心,config-server和config-client,訪問http://localhost:2008/sang,結(jié)果如下:
此時我利用Git客戶端工具,將app-dev.properties中的內(nèi)容修改一下,修改成功之后,先用POST請求訪問http://localhost:2008/refresh地址,結(jié)果如下:
然后再訪問http://localhost:2008/sang,結(jié)果如下:
我們看到配置文件已經(jīng)更新了。
到此,相信大家對“Spring Cloud Config客戶端怎么配置”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!