SpringCloud Config 分布式配置中心

1.為什么要使用分布式配置中心?

產(chǎn)生的背景:在微服務(wù)如果使用傳統(tǒng)的方式管理配置文件,配置文件管理器非常復(fù)雜,如果生產(chǎn)環(huán)境配置文件,可能

需要發(fā)生改變的時(shí)候,重新打war包,重新讀取配置信息在jvm內(nèi)存中

2.什么是分布式配置中心?

在微服務(wù)當(dāng)中使用同一個(gè)服務(wù)器管理所有服務(wù)配置文件信息,能夠?qū)崿F(xiàn)后臺(tái)可管理,當(dāng)服務(wù)器正在運(yùn)行的時(shí)候,

如果配置文件需要發(fā)生改變,可以實(shí)現(xiàn)不需要重啟服務(wù)器實(shí)時(shí)更改配置文件信息.

3.有哪些分布式配置中心框架? (推薦使用阿波羅和zk)

1.阿波羅攜程寫分布式配置中心,有圖形界面可管理配置文件信息.配置文件信息存放在數(shù)據(jù)庫(kù)里面.

2.SpringCloud Config沒有后臺(tái)可管理分布式配置中心,配置文件信息存放在版本控制器里面.

3.使用Zookeeper實(shí)現(xiàn)分布式配置中心,持久節(jié)點(diǎn)+事件通知 ?????????

4.分布式配置中心需要哪些組件?

1.Web管理系統(tǒng)--后臺(tái)可以使用圖形界面管理配置文件SpringCloud Config沒有圖像化管理配置文件

2.存放分布式配置文件服務(wù)器(持久存儲(chǔ)服務(wù)器)--使用版本控制器存放配置文件信息,使用git環(huán)境

3.ConfigServer緩存配置文件服務(wù)器(臨時(shí)緩存存放)

4.ConfigClient 讀取ConfigServer配置文件信息.

5.搭建分布式配置中心SpringCloud Config

1.搭建git環(huán)境, 目的:持久化存儲(chǔ)配置文件信息 采用碼云

git環(huán)境上文件夾以項(xiàng)目進(jìn)行區(qū)分

member_config會(huì)員服務(wù)配置文件

order_config訂單服務(wù)配置文件

2.公司項(xiàng)目中環(huán)境是如何區(qū)分?

dev ??開發(fā)環(huán)境

sit ??測(cè)試環(huán)境

pre ??預(yù)發(fā)布環(huán)境

prd ??準(zhǔn)生產(chǎn)環(huán)境

uat ??驗(yàn)收環(huán)境

3.在Git環(huán)境上創(chuàng)建配置文件命名規(guī)范

會(huì)員服務(wù)---服務(wù)名稱---member: ?服務(wù)名稱-環(huán)境.properties ???member-dev.properties

4.默認(rèn)情況下不能及時(shí)的獲取實(shí)時(shí)變更的配置文件信息

SpringCloud分布式配置中心,可以采用手動(dòng)刷新或者自動(dòng)刷新

手動(dòng)刷新--需要人工調(diào)用接口,讀取最新配置文件(監(jiān)控中心) 人工調(diào)用/actuator/refresh進(jìn)行刷新(post請(qǐng)求)

自動(dòng)刷新--消息總線進(jìn)行實(shí)時(shí)通知---springbus


搭建步驟:

1.首先本地安裝git (步驟鏈接如下),注冊(cè)碼云賬號(hào)

碼云賬號(hào)注冊(cè)

1.新建項(xiàng)目( 分布式配置文件 ?config ) ?

2.創(chuàng)建項(xiàng)目配置文件夾(memberconfig) ?

3.創(chuàng)建配置文件(test-configClient-prd.properties和test-configClient-sit.properties)

(此處是配置不同環(huán)境的配置文件(測(cè)試和準(zhǔn)生產(chǎn)))

4.配置文件中分別添加測(cè)試配置信息

info=prd.dengdong.com ??info=prd.dengdong.com

2.搭建分布式配置中心服務(wù)端 config-server

(此時(shí)Eureka注冊(cè)中心已配置已啟動(dòng),注冊(cè)中心訪問地址? http://localhost:8000/eureka? 此處事前搭好)

1.pom.xml依賴

<!--SpringBoot整合Eureka客戶端組件-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

</dependency>

<!--SpringBoot整合config-server-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-server</artifactId>

</dependency>


分布式配置中心依賴

2.application.properties配置文件配置

#服務(wù)端口

server.port=8888

#服務(wù)名稱

spring.application.name=config-server

#eureka注冊(cè)中心服務(wù)地址

eureka.client.service-url.defaultZone=http://localhost:8000/eureka

#config-server讀取git環(huán)境地址 ?直接復(fù)制碼云項(xiàng)目地址

spring.cloud.config.server.git.uri=https://gitee.com/zsqzhang/config.git

#碼云賬號(hào)密碼(公開的話不用配置賬號(hào)密碼)

spring.cloud.config.server.git.username=******

spring.cloud.config.server.git.password=******

#讀取的分支環(huán)境(之前新建的項(xiàng)目文件夾名稱)

spring.cloud.config.server.git.search-paths=memberconfig

#讀取分支類型 注意看所處碼云分支類型

spring.cloud.config.label=master


3.新建啟動(dòng)類AppConfigServer

@SpringBootApplication

@EnableEurekaClient

@EnableConfigServer //開啟config server服務(wù)器端功能

public class AppConfigServer {

public static void main(String[] args) {

SpringApplication.run(AppConfigServer.class, args);

}

}

4. 啟動(dòng)config-server服務(wù)端項(xiàng)目訪問:ip+端口/碼云新建配置文件名稱 (即可訪問當(dāng)配置文件信息) ,服務(wù)端搭建成功

訪問http://localhost:8888/test-configClient-sit.properties? ?此接口會(huì)根據(jù)碼云修改,實(shí)時(shí)更新


3.搭建分布式配置中心客戶端 config-client

1.添加pom.xml依賴

<!--SpringBoot整合config-client-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-client</artifactId>

</dependency>

<!--actuator監(jiān)控中心-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

<!--SpringBoot整合Eureka客戶端組件-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

</dependency>

<!--SpringBoot整合WEB組件-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

2. 新建配置文件bootstrap.properties

#服務(wù)端口

server.port=8882


#服務(wù)名稱 碼云配置文件test-configClient-prd.properties 的項(xiàng)目名稱 test-configClient

spring.application.name=test-configClient


#讀取版本環(huán)境 碼云配置文件test-configClient-prd.properties 的環(huán)境 prd

spring.cloud.config.profile=prd


#讀取config-server環(huán)境 ?讀取的配置中心名稱

spring.cloud.config.discovery.service-id=config-server


#開啟讀取權(quán)限

spring.cloud.config.discovery.enabled=true

##eureka注冊(cè)中心服務(wù)地址

eureka.client.service-url.defaultZone=http://localhost:8000/eureka

#監(jiān)控中心開啟所有端點(diǎn)

management.endpoints.web.exposure.include=*


3. 添加測(cè)試類TestController

@RestController

@RefreshScope //刷新 ?RefreshScope用新的環(huán)境參數(shù)重新生成Bean

public class TestController {

@Value("${info}")

private String info;

@RequestMapping("/getinfo")

public String getInfo(){

return info;

}

}

4.添加啟動(dòng)類APPConfigClient

@SpringBootApplication

@EnableEurekaClient

public class AppConfigClient {

public static void main(String[] args) {

SpringApplication.run(AppConfigClient.class,args);

}

}

5. 啟動(dòng)項(xiàng)目調(diào)用接口http://localhost:8882/getinfo?訪問到配置信息

6. 修改碼云配置文件test-configClient-prd.properties? ? info的內(nèi)容

7. 使用postman調(diào)用監(jiān)控接口,手動(dòng)刷新配置,接口地址http://localhost:8882/actuator/refresh? post請(qǐng)求

8.再次調(diào)用http://localhost:8882/getinfo訪問到配置信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末软驰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子心肪,更是在濱河造成了極大的恐慌锭亏,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硬鞍,死亡現(xiàn)場(chǎng)離奇詭異慧瘤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)膳凝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門碑隆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蹬音,你說我怎么就攤上這事上煤。” “怎么了著淆?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵劫狠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我永部,道長(zhǎng)独泞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任苔埋,我火速辦了婚禮懦砂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘组橄。我一直安慰自己荞膘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布玉工。 她就那樣靜靜地躺著羽资,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遵班。 梳的紋絲不亂的頭發(fā)上屠升,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天潮改,我揣著相機(jī)與錄音,去河邊找鬼腹暖。 笑死汇在,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的微服。 我是一名探鬼主播趾疚,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼以蕴!你這毒婦竟也來了糙麦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤丛肮,失蹤者是張志新(化名)和其女友劉穎赡磅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宝与,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焚廊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了习劫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咆瘟。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖诽里,靈堂內(nèi)的尸體忽然破棺而出袒餐,到底是詐尸還是另有隱情,我是刑警寧澤谤狡,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布灸眼,位于F島的核電站,受9級(jí)特大地震影響墓懂,放射性物質(zhì)發(fā)生泄漏焰宣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一捕仔、第九天 我趴在偏房一處隱蔽的房頂上張望匕积。 院中可真熱鬧,春花似錦榜跌、人聲如沸闸天。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至湾揽,卻和暖如春瓤逼,著一層夾襖步出監(jiān)牢的瞬間笼吟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工霸旗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贷帮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓诱告,卻偏偏與公主長(zhǎng)得像撵枢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子精居,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容