SpringCloud微服務(wù)之Config知識(shí)總結(jié)
一、什么是Spring Cloud Config?
- Spring Cloud Config 可以為微服務(wù)架構(gòu)中的應(yīng)用提供集中化的外部配置支持,它分為服務(wù)端和客戶端兩個(gè)部分。
- Spring Cloud Config 服務(wù)端被稱為分布式配置中心,它是個(gè)獨(dú)立的應(yīng)用,可以從配置倉(cāng)庫(kù)獲取配置信息并提供給客戶端使用。
- Spring Cloud Config 客戶端可以通過配置中心來獲取配置信息,在啟動(dòng)時(shí)加載配置。
- Spring Cloud Config 的配置中心默認(rèn)采用Git來存儲(chǔ)配置信息,所以天然就支持配置信息的版本管理,并且可以使用Git客戶端來方便地管理和訪問配置信息。
二、搭建GIT環(huán)境
創(chuàng)建倉(cāng)庫(kù)
創(chuàng)建文件
master分支
# config-dev.yml config: info: "config info for dev(master)" # config-test.yml config: info: "config info for test(master)" # config-prod.yml config: info: "config info for prod(master)"
dev分支
# config-dev.yml config: info: "config info for dev(dev)" # config-test.yml config: info: "config info for test(dev)" # config-prod.yml config: info: "config info for prod(dev)"
三、服務(wù)端示例
添加依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>2.2.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> <version>2.2.0.RELEASE</version> </dependency>
添加配置
啟動(dòng)類
@SpringBootApplication @EnableEurekaClient @EnableConfigServer public class SpringcloudConfigServerApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudConfigServerApplication.class, args); } }
application.yml配置文件
server: port: 8888 spring: application: name: config-server cloud: config: server: # 配置存儲(chǔ)配置信息的Git倉(cāng)庫(kù) git: uri: https://gitee.com/prochick/spring-cloud-config.git # Git用戶名 username: xxx # Git密碼 password: xxx # 指定是否開啟啟動(dòng)時(shí)直接從git獲取配置 clone-on-start: true eureka: instance: prefer-ip-address: true instance-id: config-server-8888 client: fetch-registry: false register-with-eureka: true service-url: defaultZone: http://localhost:8010/eureka/
訪問說明
# 獲取配置信息 /{label}/{application}-{profile} # 獲取配置文件信息 /{label}/{application}-{profile}.yml
application
代表應(yīng)用名稱,默認(rèn)為配置文件中的spring.application.name,如果配置了spring.cloud.config.name,則為該名稱
label
代表分支名稱,對(duì)應(yīng)配置文件中的spring.cloud.config.label
profile
代表環(huán)境名稱,對(duì)應(yīng)配置文件中的spring.cloud.config.profile
測(cè)試使用
# 訪問http://localhost:8888/master/config-dev來獲取master分支上dev環(huán)境的配置信息 # 訪問http://localhost:8888/master/config-dev.yml來獲取master分支上dev環(huán)境的配置文件信息 # 訪問http://localhost:8888/master/config-test.yml來獲取master分支上test環(huán)境的配置文件信息 # 訪問http://localhost:8888/dev/config-dev.yml來獲取dev分支上dev環(huán)境的配置文件信息
四、客戶端示例
添加依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>2.2.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> <version>2.2.0.RELEASE</version> </dependency>
添加配置
配置文件
bootstrap.yml
server: port: 9999 spring: application: name: config-client cloud: config: # 配置中心地址 uri: http://localhost:8888 # 分支名稱 label: master # 配置文件名稱 name: config # 配置后綴名稱 profile: dev eureka: instance: prefer-ip-address: true instance-id: config-client-9999 client: fetch-registry: false register-with-eureka: true service-url: defaultZone: http://localhost:8010/eureka/ # 暴露刷新監(jiān)控 management: endpoints: web: exposure: include: 'refresh'
控制器類
@RestController @RefreshScope public class ConfigController { @Value("${config.info}") private String configInfo; @GetMapping("/configInfo") public String getConfigInfo() { return configInfo; } }
測(cè)試使用
# 訪問http://localhost:9999/configInfo 可以獲取到dev分支下dev環(huán)境的配置
五、安全認(rèn)證示例
添加依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> <version>2.2.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
添加配置
服務(wù)端配置
server: port: 8888 spring: application: name: config-server # 配置存儲(chǔ)配置信息的Git倉(cāng)庫(kù) cloud: config: server: git: # 訪問地址 uri: https://gitee.com/prochick/spring-cloud-config.git # Git用戶名 username: xxx # Git密碼 password: xxx # 指定是否開啟啟動(dòng)時(shí)直接從git獲取配置 clone-on-start: true # 配置用戶名和密碼 security: user: name: xxx password: xxx
客戶端配置
server: port: 9999 spring: application: name: config-client cloud: config: # 配置中心地址 uri: http://localhost:8888 # 分支名稱 label: master # 配置文件名稱 name: config # 配置后綴名稱 profile: dev # 配置中心用戶名 username: xxx # 配置中心密碼 password: xxx
六、集群搭建示例
添加配置
bootstrap.yml
server: port: 9999 spring: application: name: config-client cloud: config: # 分支名稱 label: master # 配置文件名稱 name: config # 配置后綴名稱 profile: dev # 集群綁定 discovery: enabled: true service-id: config-server eureka: instance: prefer-ip-address: true instance-id: config-client-9999 client: fetch-registry: true register-with-eureka: true service-url: defaultZone: http://localhost:8010/eureka/
測(cè)試訪問
# 訪問eureka-server
# 訪問http://localhost:9999/configInfo 可以獲取到dev分支下dev環(huán)境的配置
到此這篇關(guān)于SpringCloud微服務(wù)之Config知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)SpringCloud Config內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot Maven Clean報(bào)錯(cuò)解決方案
這篇文章主要介紹了SpringBoot Maven Clean報(bào)錯(cuò)解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03JAVA大作業(yè)之圖書管理系統(tǒng)實(shí)現(xiàn)全解
隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計(jì)算機(jī)應(yīng)用的普及,利用計(jì)算機(jī)對(duì)圖書館的日常工作進(jìn)行管理勢(shì)在必行,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)圖書管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2022-01-01SpringBoot中的@ControllerAdvice注解原理詳解
這篇文章主要介紹了SpringBoot中的@ControllerAdvice注解原理詳解,在SpringBoot應(yīng)用程序啟動(dòng)過程中,Spring會(huì)掃描所有的類,尋找?guī)в蠤ControllerAdvice注解的類這些方法會(huì)被添加到一個(gè)映射表中,以便后續(xù)處理異常時(shí)能找到對(duì)應(yīng)的處理方法,需要的朋友可以參考下2024-01-01Java C++解決在排序數(shù)組中查找數(shù)字出現(xiàn)次數(shù)問題
本文終于介紹了分別通過Java和C++實(shí)現(xiàn)統(tǒng)計(jì)一個(gè)數(shù)字在排序數(shù)組中出現(xiàn)的次數(shù)。文中詳細(xì)介紹了實(shí)現(xiàn)思路,感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下2021-12-12SpringMVC事件監(jiān)聽ApplicationListener實(shí)例解析
這篇文章主要介紹了SpringMVC事件監(jiān)聽ApplicationListener實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Netty學(xué)習(xí)之理解selector原理示例
這篇文章主要為大家介紹了Netty學(xué)習(xí)之理解selector原理示例使用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-07-07Spring模塊詳解之Spring ORM和Spring Transaction詳解
Spring ORM 是 Spring 框架的模塊之一,旨在簡(jiǎn)化與 JPA、Hibernate、JDO 等 ORM 工具的集成,通過提供統(tǒng)一的 API 和模板類,如 HibernateTemplate 和 JpaTemplate,Spring ORM 使開發(fā)者可以更便捷地執(zhí)行數(shù)據(jù)庫(kù)操作,感興趣的朋友跟隨小編一起看看吧2024-09-09SpringBoot 多環(huán)境配置和啟動(dòng)詳解
這篇文章主要為大家介紹了SpringBoot多環(huán)境配置和啟動(dòng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10