天天看點

.Net Core&Agile Config配置中心

當服務逐漸的增多,對各服務的配置管理愈加重要,輕量級的配置中心,入手或是搭建都簡單許多,基于.net core開發的輕量級配置中心AgileConfig,功能強大,上手簡單。

https://github.com/dotnetcore/AgileConfig

.Net Core&Agile Config配置中心

1、建立一個檔案夾用來作為配置存儲

2、新開資料庫&配置賬戶名

3、下載下傳鏡像&建立容器

AgileConfig支援sqlserver,mysql,sqlite, PostgreSql,Oracle 五種資料庫。依照實際使用的資料庫類型選擇,此處我這使用mysql。

name:容器名,給定個容器名。

TZ:指定時區。

adminConsole:配置程式是否使用管理控制台。

如果為true則啟用控制台功能,通路該執行個體會出現管理界面。

每個執行個體都可以選擇使用管理界面,共用一套資料源隻是呈現端口不同

預設賬号為admin,首次登入需要設定密碼,設定後多個管理界面都可以通用

db:provider:配置程式的資料庫類型。

目前程式支援:sqlite,mysql,sqlserver,npgsql, oracle 五種資料庫。

按照項目中允許的資料庫使用即可。

首個節點啟動後會建立資料表(相當好~)。

db:env:{env}:provider,可以指定特定環境下使用某個資料庫,如db:env:PROD.provider=sqlserver, db:env:DEVELOPMENT.provider=mysql

db:conn:配置資料庫連接配接串。

按照不同的資料庫類型設定不同的資料庫連接配接字元串。

資料庫使用第二步建立的庫。

預設内置了 DEV, TEST, STAGING, PROD 四個常用的環境,如不夠,可直接操作agc_setting 表,增加自定義環境。

db:env:{env}:conn,可以指定特定環境下使用某個資料庫,如db:env:PROD.conn=xxx, db:env:DEVELOPMENT.conn=xxx

p:指定對外端口,使用者用戶端去連接配接。

設定允許使用的對外端口即可。

v:節點的資料卷挂載

此處挂載到第一步設定的檔案夾路徑下,可按實際需要設定挂載路徑或是不設定-v參數也行。

-d:背景運作

4、打開位址,配置預設賬号admin的密碼

.Net Core&Agile Config配置中心

5、節點管理

首個節點進入管理界面後,可以将自身加入到節點清單中。

.Net Core&Agile Config配置中心

可以在節點清單中增加節點,這樣友善所有節點可以統一管理。

.Net Core&Agile Config配置中心

1、在需要管理配置的項目中增加Nuget包,以接入AgileConfig配置端

2、在AgileConfig配置端注冊用戶端資訊

.Net Core&Agile Config配置中心

3、在appsettings.json增加連接配接AgileConfig的節點,将第二步中的ID和密鑰填入配置中,設定連接配接的配置端節點,可以設定多個節點,随機連接配接一個節點。

當某個節點不可用,用戶端會切換到其他節點,所有節點不可用,使用記憶體緩存配置或是讀取本地檔案緩存配置。

.Net Core&Agile Config配置中心

4、在Program設定使用AgileConfig,如此增加環境後,AgileConfigProvider便會從相應環境appsettings.json中讀取上述配置

在Startup中添加服務

5、設定需要讀取配置的代碼,按照AspNetCore讀取配置的方式即可,啟動用戶端

6、AgileConfig配置端配置,按照json格式設定,建立或是編輯已有配置或是導入json檔案或資料等都行,點選釋出則下發到各連接配接的用戶端中。

.Net Core&Agile Config配置中心

釋出完畢,再次請求便是最新的配置資訊,作為配置中心提供的熱加載提供了更多的靈活度。

.Net Core&Agile Config配置中心

7、在配置端這邊還有許多功能,如對用戶端的管理,用戶端連接配接的檢視等,配置項曆史記錄,版本復原等,系統日志友善追蹤多端間連接配接問題,以及配置端的使用者管理等。

.Net Core&Agile Config配置中心

如果在AgileConfig中有則預設從那取值,沒有再去找機密檔案,再去找appsettings.{env}.json,最後appsettings.json,當然優先級最高的還是環境變量和指令行的配置。

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-6.0#default-configuration

作為.Net中的輪子,我是挺喜歡用這個的,搭建上手了解都極為友善,功能強大,操作簡便,同時部署起來也是極為輕松,資源占有少,皮膚也漂亮(相比Apollo)。

AgileConfig大佬位址:https://www.cnblogs.com/kklldog/p/agile-config.html

AgileConfig位址:https://github.com/dotnetcore/AgileConfig

2021-12-27,望技術有成後能回來看見自己的腳步

繼續閱讀