溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AgileConfig怎么在.NET中使用

發布時間:2021-05-09 16:57:46 來源:億速云 閱讀:166 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關 AgileConfig怎么在.NET中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

架構圖

AgileConfig怎么在.NET中使用

部署服務端

首先,我們需要部署服務端,包含了控制臺UI和節點服務,節點服務使用了長連接,配置變更后,會實時推送給客戶端,部署推薦使用docker部署,因為項目是開源的,而且是.net core 編寫的,還有一種方式是可以到github下載源代碼,編譯后發布運行。

配置信息是在數據庫記錄的,我們需要新建一個空的數據庫,然后運行命令,程序會自動幫我們初始化表結構和數據。

docker run --name agile_config -e adminConsole=true -e db:provider=mysql -e db:conn="DataBase=configdb;Data Source=host.docker.internal;User Id=root;Password=123456;" -p 5000:5000 -d kklldog/agile_config:latest

參數介紹:

  • adminConsole 配置程序是否為管理控制臺,如果為true則啟用控制臺功能,訪問該實例會出現管理界面,多節點部署的話,只需要開啟一個控制臺即可。

  • db:provider 配置程序的數據庫類型,可選 sqlserver,mysql,sqlite,npgsql,oracle。

  • db:conn 配置數據庫連接串

訪問 http://localhost:5000/, 第一次啟動,程序會要求我們初始化管理員密碼,設置完成以后,進入到首頁,另外作者最近已經用 React 重構了UI,最近會更新,大家也可以嘗鮮。

AgileConfig怎么在.NET中使用

然后還需要配置節點,多節點保證了高可用,那如果所有節點都掛了的話,程序會讀取本地的配置緩存,來保證正常的運行,這點大家不用擔心, 我們需要在節點管理頁面手動添加節點,這里我啟動了一個節點,添加的地址為 http://192.168.100.103:5000 ,需要注意的是,這里在docker環境不能使用 localhost。

AgileConfig怎么在.NET中使用

接下來需要配置應用,點擊新增應用,填寫應用名稱,應用Id和應用密鑰。

AgileConfig怎么在.NET中使用

在客戶端程序使用

這里使用了asp net core web項目示例,首先需要安裝客戶端組件,執行一下命令或者通過Nuget安裝。

Install-Package AgileConfig.Client

然后修改appsetting.json 文件

{ 
  "AgileConfig": {
    "appId": "LogService",
    "secret": "123456",
    "nodes": "http://localhost:5000,http://localhost:5001"//多個節點使用逗號分隔
  }
}

然后修改 Program.cs

 public static IHostBuilder CreateHostBuilder(string[] args) =>
       Host.CreateDefaultBuilder(args)
       .ConfigureAppConfiguration((context, config) =>
        {
           var configClient = new ConfigClient();
           config.AddAgileConfig(configClient);
       })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

準備工作完成,接下來就要開始使用了,我們在配置項頁面上面添加配置,然后選中點擊上線。

AgileConfig怎么在.NET中使用

然后可以在代碼中使用注入的 IConfiguration 獲取配置即可

 [Route("[controller]/[action]")]
    public class HomeController : ControllerBase
    {    
        private readonly IConfiguration _config;

        public HomeController(IConfiguration config)
        {
            _config = config; 
        }

        [HttpGet]
        public IActionResult Index()
        {
            var value = _config["AgileKey"];

            return Ok(new { value });
        }

然后啟動程序,就可以盡情使用 AgileConfig 了,在頁面上修改配置的話,我們的客戶端配置也是實時修改的。

在配置頁面上的配置都是字符串鍵值對的,那對于Json字符串應該怎么處理呢, 我們可以使用 Tuhu.Extensions.Configuration.ValueBinder.Json 擴展,通過Nuget安裝即可,然后修改Startup.cs 文件

public void ConfigureServices(IServiceCollection services)
{ 
      services.ConfigureJsonValue<LogOptions>("", Configuration.GetSection("LogOptions"));  
}

LogOptions:

public class LogOptions : IOptions<LogOptions>
{
        public string Level { get; set; }

        public int Count { get; set; }

        public LogOptions Value => this;
}

看完上述內容,你們對 AgileConfig怎么在.NET中使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女