1. 程式人生 > >AgileConfig-輕量級配置中心 1.1.0 釋出,支援應用間配置繼承

AgileConfig-輕量級配置中心 1.1.0 釋出,支援應用間配置繼承

AgileConfig輕量級配置中心自第一個版本釋出不知不覺已經半年了。在並未進行什麼推廣的情況下收到了250個star,對我有很大的鼓舞,並且也有不少同學試用,並且給出了寶貴的意見,非常感謝他們。其中有一些意見非常好,但是一直沒有開發。主要是一來下半年比較忙(懶),二來我不想把AgileConfig搞的過於複雜。但其中有個需求被很多同學提及過,就是希望能支援應用間的繼承(關聯),類似Apollo的公共namespace的概念。比如微服務應用之間有不少公共配置項,可以配置在一個應用內,然後其他應用繼承它,這樣每個應用就不用重複的配置公共配置。我思考了一下,這個配置確實是個非常有用的功能,於是花了點時間實現了它。 Github地址:[https://github.com/kklldog/AgileConfig](https://github.com/kklldog/AgileConfig) 求star 。 下面的示例簡單演示下如何使用AgileConfig讀取配置並且使用繼承功能 ## 使用docker啟動一個AgileConfig例項 ``` sudo docker run --name agile_config -e adminConsole=true -e db:provider=sqlserver -e db:conn="Persist Security Info = False; User ID =dev; Password =dev@123,; Initial Catalog =agile_config_test; Server =." -p 5000:5000 kklldog/agile_config:latest ``` 使用docker命令執行一個AgileConfig例項,這是最簡單的方法。當然你也可以拉原始碼下來編譯釋出使用IIS來執行它。 配置環境變數: adminConsole=true 開啟控制檯功能 db:provider=sqlserver 資料庫為SqlServer db:conn="Persist Security Info = False; User ID =dev; Password =dev@123,; Initial Catalog =agile_config_test; Server =." 配置資料庫連線 -p 5000:5000 容器的5000口對映本地的5000口 ## 配置AgileConfig 第一次執行需要配置管理密碼 ![](https://camo.githubusercontent.com/f147bfbc04551c69d4d33039fe60943dbede4b9db6756704aa395871acc29c49/68747470733a2f2f73312e617831782e636f6d2f323032302f30362f30392f74344467494a2e706e67) 密碼配置完成後重新登入進系統,開始配置節點 ![D66God.png](https://s3.ax1x.com/2020/11/29/D66God.png) 在設計的時候節點跟控制檯是分開的,但是為了部署簡單最後節點跟控制檯被實現在一起了。所以採用單節點部署的時候,該例項既是節點又是控制檯,所以也需要把本節點的地址加入到節點列表裡,以便控制檯能管理到。 ## 新增應用 AgileConfig的初始化完成了,現在我們開始新增應用。 新增“公共應用” ![D66oTJ.png](https://s3.ax1x.com/2020/11/29/D66oTJ.png) 新增應用名稱,應用id,勾選“可被繼承”。點選確定完成公共的建立。系統只支援一層的繼承,可被繼承的應用不能再繼承其它應用。 建立完成後為公共應用新增配置項 ![D66jOO.png](https://s3.ax1x.com/2020/11/29/D66jOO.png) 為公共應用新增一個配置項:鍵為public_key_01 值為0001 。 新增“私有應用” ![D6cKts.png](https://s3.ax1x.com/2020/11/29/D6cKts.png) 新增一個私有應用,不要選“可被繼承”。點選繼承應用欄的加號會彈出可以被的繼承應用列表,選擇“公共應用”。點選“確定”完成建立。 為私有應用建立配置項 ![D6c091.png](https://s3.ax1x.com/2020/11/29/D6c091.png) 為私有應用新增一個配置項:鍵為private_key_01 值為0002 。 > 注意:把所有的配置都上線,否則客戶端讀不到配置。 ## 客戶端讀取配置 ### 建立Asp.net Core WebApi專案 我們建立一個WebApi專案做為客戶端來演示如何讀取配置 ![D6giE4.png](https://s3.ax1x.com/2020/11/29/D6giE4.png) ### 使用nuget引用AgileConfig.Client ``` Install-Package AgileConfig.Client -Version 1.1.0 ``` ### 整合AgileConfig.Client 使用nuget安裝成功後,切換到Program.cs開始整合AgileConfigClient。 ``` public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((ctx,cfg)=> { var appId = "private_01"; var secret = "1"; var nodes = "http://localhost:5000"; //new一個client例項 var configClient = new ConfigClient(appId, secret, nodes); //使用AddAgileConfig配置一個新的IConfigurationSource cfg.AddAgileConfig(configClient); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup