摘要:概要什么是創(chuàng)建并運(yùn)行一個(gè)建立一個(gè)創(chuàng)建并運(yùn)行一個(gè)是什么什么是配置信息一個(gè)中不只是代碼還需要連接資源和其它應(yīng)用經(jīng)常有很多需要外部設(shè)置的項(xiàng)去調(diào)整行為如切換不同的數(shù)據(jù)庫(kù)國(guó)際化等應(yīng)用中的會(huì)經(jīng)常見(jiàn)到的等就是配置信息常見(jiàn)的實(shí)現(xiàn)信息配置的方法硬編碼缺點(diǎn)需要
概要
Spring Cloud Config是什么?什么是Spring Cloud Config?
創(chuàng)建并運(yùn)行一個(gè)Spring Cloud Config Server
建立一個(gè)Repository
創(chuàng)建并運(yùn)行一個(gè)Spring Cloud Config Client
什么是配置信息?
一個(gè)Application中不只是代碼,還需要連接資源和其它應(yīng)用,經(jīng)常有很多需要外部設(shè)置的項(xiàng)去調(diào)整Application行為,如切換不同的數(shù)據(jù)庫(kù),i18n國(guó)際化 等.應(yīng)用中的會(huì)經(jīng)常見(jiàn)到的xml,properties,yaml等就是配置信息.
常見(jiàn)的實(shí)現(xiàn)信息配置的方法:
硬編碼(缺點(diǎn):需要修改代碼,風(fēng)險(xiǎn)大)
放在xml等配置文件中,和應(yīng)用一起打包(缺點(diǎn):需要重新打包和重啟)
文件系統(tǒng)中(缺點(diǎn):依賴(lài)操作系統(tǒng)等)
環(huán)境變量(缺點(diǎn):有大量的配置需要人工設(shè)置到環(huán)境變量中,不便于管理,且依賴(lài)平臺(tái))
云端存儲(chǔ)(缺點(diǎn):與其他應(yīng)用耦合)
Spring Cloud Config 就是云端存儲(chǔ)配置信息的,它具有中心化,版本控制,支持動(dòng)態(tài)更新,平臺(tái)獨(dú)立,語(yǔ)言獨(dú)立等特性.
Spring Cloud Config的原理如圖所示,真正的數(shù)據(jù)存在Git等repository中,Config Server去獲取相應(yīng)的信息,然后開(kāi)發(fā)給Client Application,相互間的通信基于HTTP,TCP,UDP等協(xié)議.
1.創(chuàng)建一個(gè)名為my-config-server的應(yīng)用,并添加spring-cloud-starter-parent,spring-cloud-config-server依賴(lài),pom信息具體如下
4.0.0 org.springframework.cloud spring-cloud-starter-parent Brixton.SR4 org.mmb.cloud mmb-config-server 1.0-SNAPSHOT jar org.springframework.cloud spring-cloud-config-server
2.在Application主類(lèi)上添加@EnableConfigServer注解,具體如下
package config; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; /** * Created by mmb on 2016/7/30. */ @EnableConfigServer @SpringBootApplication public class MMBConfigServerApplication { public static void main(String[] args) { SpringApplication.run(MMBConfigServerApplication.class, args); } }
3.去自己的GitHub上創(chuàng)建一個(gè)repository命名=MMBConfigData,并創(chuàng)建一個(gè)mmb-config-client.yml的配置文件,并添加一個(gè)key為luck-word,value mmb,或者其它任何值.具體如下
--- lucky-word: mmb
4.回自己的工程,設(shè)置應(yīng)用application.yml,配置spring.cloud.config.server.git.uri為"https://github.com/"YOUR-GITHUB-ID"/"YOUR-REPOSITORY-NAME"",并設(shè)置端口server.port為8001
server: port: 8001 spring: cloud: config: server: git: uri: https://github.com/mumubin/MMBConfigData searchPaths: data
5.啟動(dòng)應(yīng)用并打開(kāi)地址http://localhost:8001/mmb-con...將會(huì)看到配置好的信息,我的如下
{ "name": "mmb-config-client", "profiles": [ "default" ], "label": "master", "version": "4d9240f45fecd34136f81683d44c2e144792af86", "propertySources": [ { "name": "https://github.com/mumubin/MMBConfigData/data/mmb-config-client.yml", "source": { "lucky-word": "mmb" } } ] }創(chuàng)建并運(yùn)行一個(gè)Spring Cloud Config Client
1.創(chuàng)建一個(gè)名為my-config-client的應(yīng)用,并添加spring-cloud-starter-parent,spring-cloud-starter-config,spring-boot-starter-web依賴(lài),pom信息具體如下
4.0.0 org.springframework.boot spring-boot-starter-parent 1.3.5.RELEASE org.springframework.cloud spring-cloud-starter-parent Brixton.SR4 pom import org.springframework.cloud spring-cloud-starter-config org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools true org.mmb.cloud mmb-config-client 1.0-SNAPSHOT
2.創(chuàng)建bootstrap.yml在resource下,并設(shè)置spring.application.name,spring.cloud.config.uri,server.port信息,具體如下
spring: application: name: mmb-config-client cloud: config: uri: http://localhost:8001 --- server: port: 8002
注意這里是bootstrap.yml而不是appliction.yml,因?yàn)閎ootstrap.yml會(huì)在應(yīng)用啟動(dòng)之前讀取,而spring.cloud.config.uri會(huì)影響應(yīng)用啟動(dòng)
3.創(chuàng)建一個(gè)Controller
@RestController public class LuckyWordController { @Value("${lucky-word}") String luckyWord; @RequestMapping("/lucky-word") public String showLuckyWord() { return "The lucky word is: " + luckyWord; } }
4.啟動(dòng)Application,打開(kāi)http://localhost:8002/lucky-word
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
The lucky word is: mmb
特別感謝 kennyk65
Spring Cloud 中文用戶(hù)組 31777218
Spring-Cloud-Config 官方文檔-中文譯本
Spring Cloud Netflix 官網(wǎng)文檔-中文譯本
本文實(shí)例github地址 Config Server Config Client
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/64990.html
摘要:概要什么是使用獲取服務(wù)調(diào)用整合構(gòu)建集群什么是模塊提供的功能是被動(dòng)式的服務(wù)發(fā)現(xiàn)什么是服務(wù)發(fā)現(xiàn)服務(wù)發(fā)現(xiàn)就像聊天室一個(gè)每個(gè)用戶(hù)來(lái)的時(shí)候去服務(wù)器上注冊(cè)這樣他的好友們就能看到你你同時(shí)也將獲取好友的上線列表在微服務(wù)中服務(wù)就相當(dāng)于聊天室的用戶(hù)而服務(wù)注冊(cè)中 概要 什么是Spring Cloud Eureka? 使用Eureka獲取服務(wù)調(diào)用 Eureka整合Spring Config Server 構(gòu)...
摘要:服務(wù)器將要監(jiān)聽(tīng)的端口不要使用服務(wù)進(jìn)行注冊(cè)不要在本地緩存注冊(cè)表信息使用一個(gè)新的注解,就可以讓我們的服務(wù)成為一個(gè)服務(wù)服務(wù)發(fā)現(xiàn)客戶(hù)端配置以為例需要做件事情成為服務(wù)發(fā)現(xiàn)的客戶(hù)端配置對(duì)應(yīng)來(lái)說(shuō)我們只需要配置如下啟動(dòng)運(yùn)行查看。 Spring簡(jiǎn)介 為什么要使用微服務(wù) 單體應(yīng)用: 目前為止絕大部分的web應(yīng)用軟件采用單體應(yīng)用,所有的應(yīng)用的用戶(hù)UI、業(yè)務(wù)邏輯、數(shù)據(jù)庫(kù)訪問(wèn)都打包在一個(gè)應(yīng)用程序上。 showI...
摘要:是匹配規(guī)則,意思是配置以開(kāi)頭并且以開(kāi)頭的。健康監(jiān)控集成了??梢酝ㄟ^(guò)配置去檢查指定的配置文件訪問(wèn)結(jié)果如下可以通過(guò)設(shè)置來(lái)禁用健康檢查。顯示的是類(lèi)似于用戶(hù)自己定義的屬性的那種黃色背景。意思就是這個(gè)不是系統(tǒng)的屬性,但是確認(rèn)是生效的。 《Spring Cloud與Docker 微服務(wù)架構(gòu)實(shí)戰(zhàn)》學(xué)習(xí)筆記 Config Client 在上篇文章中,我們已經(jīng)編寫(xiě)好了 Config Server 那個(gè)客...
閱讀 3591·2021-11-24 11:17
閱讀 2390·2021-11-15 11:38
閱讀 3455·2021-10-14 09:42
閱讀 3000·2019-08-30 15:54
閱讀 2079·2019-08-28 18:09
閱讀 599·2019-08-26 11:48
閱讀 1686·2019-08-26 10:48
閱讀 2218·2019-08-26 10:45