spring cloud微服務(wù)架構(gòu)(八):分布式配置中心Spring Cloud Config——配置刷新和加解密

1 配置刷新

遠(yuǎn)程Git上面的配置修改后,客戶端可以通過(guò)一些方式來(lái)更新配置伊脓。訪問(wèn)客戶端的/refresh端點(diǎn)進(jìn)行配置刷新碗短,訪問(wèn)端點(diǎn)要使用HTTP,POST方法悦陋。具體操作如下:

在上篇文章中Config-client項(xiàng)目pom增加如下配置文件(config-server不做修改):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>1.5.4.RELEASE</version>
</dependency>

在client需要更新變量的對(duì)應(yīng)的controller加入注解@RefreshScope:

@RestController
@RefreshScope
public class TestController {
    
    @Autowired
    Environment env;

    @RequestMapping("/feng")
    public String sang() {
        return env.getProperty("feng", "未定義");
    }
}

我們將Git上的配置改為dev config 2蜈彼,然后使用postman POST方式訪問(wèn)http://localhost:2008/refresh/,配置會(huì)自動(dòng)更新俺驶。

image.png

另外client配置文件中要關(guān)閉安全管理:

management:
  security:
    enabled: false
image.png

2 準(zhǔn)備工作

同樣幸逆,Git配置文件使用明文存儲(chǔ)是不安全的,spring cloud config 提供了配置文件的加解密暮现。

默認(rèn)情況下我們的JRE中自帶了JCE(Java Cryptography Extension)还绘,但是默認(rèn)是一個(gè)有限長(zhǎng)度的版本,我們這里需要一個(gè)不限長(zhǎng)度的JCE栖袋,這個(gè)JCE我們可以直接百度然后在Oracle官網(wǎng)下載拍顷,下載之后解壓,我們可以看到如下三個(gè)文件:


image.png

將這里的兩個(gè)jar包拷貝到我們的jdk安裝目錄下塘幅,我的是%JAVA_HOME%\jre\lib\security昔案,覆蓋該目錄下原有的文件尿贫。

3 配置對(duì)稱加解密

spring cloud config 提供配置加密和解密的功能。對(duì)稱加密是指發(fā)送和接收數(shù)據(jù)的雙方必使用相同的密鑰對(duì)明文進(jìn)行加密和解密運(yùn)算爱沟,所以需要在config-server項(xiàng)目配置文件application中增加配置秘鑰:

3.1 加密

encrypt:
  key: myKey

配置完之后帅霜,首先來(lái)測(cè)試加密的功能匆背,可以通過(guò)訪問(wèn)/encrypt來(lái)進(jìn)行加密呼伸,下面使用postman進(jìn)行測(cè)試。


image.png

3.2 解密
通過(guò)訪問(wèn)/decrypt端點(diǎn)進(jìn)行解密钝尸,下面使用postman進(jìn)行測(cè)試括享。

image.png

將Git配置文件改為加密方式,如果config client想要獲取到解密后的字符串珍促,只需要將配置文件前增加{cipher}即可

4 配置非對(duì)稱加解密

對(duì)稱加密算法在加密和解密時(shí)都使用同一個(gè)密鑰铃辖,但非對(duì)稱加密則使用一對(duì)密鑰。使用公鑰加密猪叙,解密使用私鑰解密娇斩。spring cloud config 同樣支持非對(duì)稱加密。

可以使用JDK提供的工具keytool生成密鑰對(duì)穴翩,執(zhí)行成功之后犬第,會(huì)在命令執(zhí)行目錄下生成一個(gè)名為.keystore的文件,將生成的文件復(fù)制到config server項(xiàng)目的classpath下芒帕,修改application.yml文件歉嗓,加入如下配置:

encrypt:
  keyStore:
    location: classpath:/myTest.keyStore
    password: ***
    alias: ***
    secret: ***

設(shè)置好后,同樣可以使用/encrypt來(lái)進(jìn)行加密背蟆,使用/decrypt來(lái)進(jìn)行解密鉴分。在Git的配置文件中使用{cipher}密文的格式,config client訪問(wèn)時(shí)會(huì)自動(dòng)解密带膀。

5 其他配置

  1. 服務(wù)器健康指示器:在config server訪問(wèn)Git配置文件倉(cāng)庫(kù)時(shí)志珍,如果連不上,那么config server的健康狀態(tài)將會(huì)設(shè)置為DOWN垛叨,除了會(huì)檢測(cè)Git倉(cāng)儲(chǔ)是否可以訪問(wèn)外碴裙,還可以進(jìn)行額外配置,檢測(cè)Git的某個(gè)目錄或文件是否可以訪問(wèn)点额√蛑辏‘
  2. 客戶端的錯(cuò)誤提取與重試機(jī)制:默認(rèn)情況下,config client在啟動(dòng)時(shí)还棱,如果config server連接不上時(shí)仍然可以啟動(dòng)载慈。也可以通過(guò)配置在config client啟動(dòng)時(shí),無(wú)法連接config server珍手,則終止client的啟動(dòng)办铡。
  3. 安全配置:可以給config server配置密碼辞做,在client連接時(shí)需要密碼。

參考

  1. 楊恩雄 《瘋狂spring cloud微服務(wù)架構(gòu)實(shí)戰(zhàn)》
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寡具,一起剝皮案震驚了整個(gè)濱河市秤茅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌童叠,老刑警劉巖框喳,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異厦坛,居然都是意外死亡五垮,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門杜秸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)放仗,“玉大人,你說(shuō)我怎么就攤上這事撬碟〉ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵呢蛤,是天一觀的道長(zhǎng)惶傻。 經(jīng)常有香客問(wèn)我,道長(zhǎng)顾稀,這世上最難降的妖魔是什么达罗? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮静秆,結(jié)果婚禮上粮揉,老公的妹妹穿的比我還像新娘。我一直安慰自己抚笔,他們只是感情好扶认,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著殊橙,像睡著了一般辐宾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上膨蛮,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天叠纹,我揣著相機(jī)與錄音,去河邊找鬼敞葛。 笑死誉察,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惹谐。 我是一名探鬼主播持偏,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼驼卖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鸿秆?” 一聲冷哼從身側(cè)響起酌畜,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卿叽,沒(méi)想到半個(gè)月后桥胞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡附帽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年埠戳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了井誉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蕉扮。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖颗圣,靈堂內(nèi)的尸體忽然破棺而出喳钟,到底是詐尸還是另有隱情,我是刑警寧澤在岂,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布奔则,位于F島的核電站,受9級(jí)特大地震影響蔽午,放射性物質(zhì)發(fā)生泄漏易茬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一及老、第九天 我趴在偏房一處隱蔽的房頂上張望抽莱。 院中可真熱鬧,春花似錦骄恶、人聲如沸食铐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)虐呻。三九已至,卻和暖如春寞秃,著一層夾襖步出監(jiān)牢的瞬間斟叼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工春寿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朗涩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓堂淡,卻偏偏與公主長(zhǎng)得像馋缅,于是被迫代替她去往敵國(guó)和親扒腕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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