您好,登錄后才能下訂單哦!
這篇文章主要介紹“Springcloud Config配置中心怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Springcloud Config配置中心怎么使用”文章能幫助大家解決問題。
簡單來說,Spring Cloud Config就是我們通常意義上的配置中心,也就是微服務項目中,每一個微服務都需要配置相應的配置,如果不同服務的配置文件有相同的配置,如果這些相同配置需要修改的話就要全都修改一遍。如果使用springcloud Config的話就可以把原本放在本地文件的配置抽取出來放在中心服務器,從而能夠提供更好的管理、發布能力。
Config分為服務端和客戶端,服務端也稱為分布式配置中心,它是一個獨立的微服務應用,用來連接配置服務器并為客戶端提供獲取配置信息,加密/解密信息等訪接口。客戶端則是通過指定的配置中心來管理應用資源,以及與業務相關的配置內容,并在啟動的時候從配置中心獲取和加載配置信息配置服務器默認采用git來存儲配置信息,這樣就有助于對環境配置進行版本管理,并且可以通過git客戶端工具來方便的管理和訪問配置內容
第一步: 外部config需要結合git使用,于是需要在github或者gitee創建一個倉庫,倉庫里全都是各種配置文件,git遠程倉庫的創建這里就不多加贅述,創建完成之后需要獲取到倉庫的鏈接
第二步: 引入相關依賴
<!--Config服務端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
第三步: 配置文件配置遠程倉庫地址
server:
port: 3344spring:
application:
name: cloud-config-center #注冊進Eureka服務器的微服務名
cloud:
config:
server:
git:
uri: https://gitee.com/mereign/springcloud-config.git #GitHub或者Gitee上面的git倉庫名字
search-paths: #搜索目錄
- springcloud-config
label: master #讀取分支
#啟動成功后訪問的路徑 http://ip:3344/{label}/{application}-{profile}.yml 能訪問的配置文件 就表示成功了eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
啟動配置中心微服務模塊,但是有些小伙伴會遇到這個異常Authentication is required but no CredentialsProvider has been registered,原因是你的遠程倉庫創建的私有的未開源,解決方案有兩種,一來就是把倉庫修改為開源倉庫,還有就是使用下面的方法配置你github或者Gitee的用戶名和密碼
spring:
application:
name: cloud-config-center #注冊進Eureka服務器的微服務名
cloud:
config:
server:
git:
uri: https://gitee.com/mereign/springcloud-config.git #GitHub或者Gitee上面的git倉庫名字
username: 自己的github或者Gitee用戶名
password: 自己的github或者Gitee密碼
第四步: 主程序類使用@EnableConfigServer注解標注Config服務端
配置好了之后啟動微服務,可以使用url鏈接直接讀取文件里的內容
第一步: 引入相關依賴,這里客戶端的依賴與服務端有所不同
<!--Config服務端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
第二步: 配置文件,這里的客戶端的配置文件與之前的有所不同,命名為bootstrap.yml,主要區別為applicaiton.yml是用戶級的資源配置項,而bootstrap.yml是系統級的,優先級更加高
server:
port: 3355spring:
application:
name: config-client
cloud:
config:
uri: http://localhost:3344 #配置中心的地址
label: master #分支名稱
name: config #配置文件名稱
profile: dev #讀取后綴名稱#服務注冊到eureka地址
eureka:
client:
service-url:
#設置與eureka server交互的地址查詢服務和注冊服務都需要依賴這個地址
defaultZone: http://localhost:7001/eureka #單機版
經過上述配置,等服務啟動開的時候,會3355服務端會到3344服務端獲取config-dev的配置內容,3344服務端再來連接配置的GitHub或者Gitee倉庫從而獲取config-dev的配置內容
第三步: 主程序類只需要標注eureka客戶端即可,無需標注config客戶端
第四步: 服務端的url鏈接形式獲取內容,而客戶端需要使用REST接口的形式獲取指定配置信息
@RestController public class ConfigController { @Value("${config.info}") private String configInfo; @GetMapping("/configInfo") public String getConfigInfo() { return configInfo; } }
啟動主程序類(要先啟動注冊中心eureka再啟動config服務端,最后才能啟動config客戶端),然后訪問controller中的接口即可獲得相應的配置信息
當遠程倉庫的配置修改之后,服務端通過url鏈接的形式獲取內容是更新之后的,但是客戶端使用REST接口的形式獲取到的配置信息則是更新之前的,只有重啟config服務端微服務才能通過客戶端接口訪問到更新之后的配置信息。
為了解決上述的問題,可以使用動態刷新配置服務端微服務,避免每次配置更新都需要重啟微服務才能獲取最新配置的痛點
第一步: 引入actuator監控技術依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
第二步: bootstrap.yml文件中暴露服務端點,可以讓這個服務處于可被監控狀態
# 暴露監控端點
management:
endpoints:
web:
exposure:
include: "*"
第三步: 在controller類上加@RefreshScope注解
第四步: 發送post請求,手動刷新3355服務端的監控,這樣才能刷新config服務端獲取的配置信息
curl -X POST "http://localhost:3355/actuator/refresh
第五步: 到此為止就config服務端就可以訪問到遠程倉庫中最新的配置信息了
關于“Springcloud Config配置中心怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。