分布式配置中心

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

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啟動後,如果某個配置檔案不存在(服務名/環境名錯誤),那麼程式就會立馬報錯;

分布式配置中心

部署演進 單機配置檔案部署 當隨著業務的使用者量增加,通常我們會把我們的服務進行多機器 集群 部署。這時候,配置的發布就變成了如下,多機器配置 1.2 分配式配中心 傳統配置的方式已經暴露出了很多問題,其餘的諸如 歷史版本管理,許可權控制,安全性等等問題,是傳統的配置檔案無法處理的 隨著業務的發展 ...

springcloud分布式配置中心

本文是對內容做些應用 1.bootstrap.properties檔案內容 必須與配置中心中的檔案字首一致 開啟健康檢查 需要spring boot starter actuator依賴 eureka.client.healthcheck.enabled true 續約更新時間間隔 預設30秒 eu...

分布式配置中心 autoconf

配置的演進 各種分布式配置中心 autoconf介紹,功能介紹,以及易用ui autoconf實現原理 程式在執行時的動態調整的能力 無需重啟服務,無需重新編譯 目前分布式配置中心其實挺多的 只是介紹autoconf 一款高效能的分布式配置中心。用postgresql zeromq儲存資料 支援實時...