分散式配置中心

2022-06-23 22:03:13 字數 1681 閱讀 2892

1、話題引入:

如果配置檔案全部放在resources目錄下,管理起來非常複雜,所以採用分散式配置中心,放在git上

2、產生背景:

在微服務中如果使用傳統的方式管理配置檔案,配置檔案管理器非常複雜;

如果生產環境配置檔案,可能需要發生改變的時候,重新打war,重新讀取配置資訊在jvm記憶體中;

3、什麼是分散式配置中心:

在微服務中使用同一個伺服器管理所有服務配置檔案資訊,能夠實現後臺可管理,當伺服器正在執行時,如果配置檔案需要發生改變,可以實現不需要重啟伺服器實時更改配置檔案資訊。

4、分散式配置中心框架

1)阿波羅,攜程的,有圖形介面可管理配置檔案資訊,配置檔案資訊存放在資料庫裡面

2)springcoud config 沒有後臺可管理分散式配置中心,配置檔案資訊存放在版本控制器裡面(git/svn)

3)zookeeper 持久節點+事件通知

5、搭建分散式配置中心所需要的元件:

1)web管理系統,後臺可以使用圖形介面管理配置檔案

2)存放分散式配置檔案的伺服器(持久儲存伺服器),使用版本控制器

3)configserver快取配置檔案伺服器(臨時快取存放)

4)configclient讀取configserver配置檔案資訊

6、git上檔案命名規則

1)git環境上資料夾以專案進行區分

member_config 會員服務配置檔案

order_config 訂單服務配置檔案

2)公司專案中環境是如何區分

dev 開發環境

sit 測試環境

pre 預釋出環境

prd 準生產環境

3)客戶端的命名要和git上的服務名稱一樣,因為系統會以該命名為字首去git上面搜尋

配置檔案命名規則:服務名稱-環境.properties

7、重新整理配置檔案

1)預設情況下不能及時的獲取實時變更的配置檔案資訊,springcloud分散式配置中心可以採用手動重新整理或者自動重新整理

手動重新整理---需要人工呼叫介面,讀取最新配置檔案(監控中心)--建議使用

自動重新整理---訊息匯流排進行實時通知,springbus --不建議使用,更加消耗效能

兩者都不需要重啟伺服器

2)要實現手動重新整理,要用到actuator,在yml中配置,然後在controller上面加上@refreshscope註解;

還要手動發一個post請求:http://localhost:9300/actuator/refresh

=》一般來說,會將配置資訊放在一個類上面,把@refreshscope註解放在那個類上面就可以了;肯定不會在所有controller上面加註解的;

問題

1)config-server搭建好後,sit檔案訪問有內容,而prd訪問沒內容

--》可能是gitee的問題,刪掉重新建一個就可以訪問了;這裡不能訪問,後面的config-client也是不能訪問的;

注意這個config-client的yml檔案為prd

2)在config-client啟動後,如果某個配置檔案不存在(服務名/環境名錯誤),那麼程式就會立馬報錯;

分散式配置中心選擇方案

需求說明 專案中配置檔案比較繁雜,而且不同環境的不同配置修改相對頻繁,每次釋出都需要對應修改配置,如果配置出現錯誤,需要重新打包釋出,時間成...

使用 nacos 搭建註冊中心及配置中心

在分散式微服務框架中,現在都流行使用 nacos 作為分散式框架的註冊中心與配置中心。當我們搭建一套spring boot 框架的時候,預設...

Nacos 作為配置中心

一 作為配置中心 過程 1 引入nacos config pom檔案 2 建立bootstrap properties 配置nacos資訊 3 配置中心 nacos 增加規則 4 給服務 properties中 新增配置 5 動態獲取配置註解 refreshscope 動態獲取並重新整理配置 value...