AgileConfig怎么在.NET中使用

今天就跟大家聊聊有关 AgileConfig怎么在.NET中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

架构图

AgileConfig怎么在.NET中使用

部署服务端

首先,我们需要部署服务端,包含了控制台UI和节点服务,节点服务使用了长连接,配置变更后,会实时推送给客户端,部署推荐使用docker部署,因为项目是开源的,而且是.net core 编写的,还有一种方式是可以到github下载源代码,编译后发布运行。

配置信息是在数据库记录的,我们需要新建一个空的数据库,然后运行命令,程序会自动帮我们初始化表结构和数据。

dockerrun--nameagile_config-eadminConsole=true-edb:provider=mysql-edb:conn="DataBase=configdb;DataSource=host.docker.internal;UserId=root;Password=123456;"-p5000:5000-dkklldog/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-PackageAgileConfig.Client

然后修改appsetting.json 文件

{
"AgileConfig":{
"appId":"LogService",
"secret":"123456",
"nodes":"http://localhost:5000,http://localhost:5001"//多个节点使用逗号分隔
}
}

然后修改 Program.cs

publicstaticIHostBuilderCreateHostBuilder(string[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context,config)=>
{
varconfigClient=newConfigClient();
config.AddAgileConfig(configClient);
})
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup<Startup>();
});

准备工作完成,接下来就要开始使用了,我们在配置项页面上面添加配置,然后选中点击上线。

AgileConfig怎么在.NET中使用

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

[Route("[controller]/[action]")]
publicclassHomeController:ControllerBase
{
privatereadonlyIConfiguration_config;

publicHomeController(IConfigurationconfig)
{
_config=config;
}

[HttpGet]
publicIActionResultIndex()
{
varvalue=_config["AgileKey"];

returnOk(new{value});
}

然后启动程序,就可以尽情使用 AgileConfig 了,在页面上修改配置的话,我们的客户端配置也是实时修改的。

在配置页面上的配置都是字符串键值对的,那对于Json字符串应该怎么处理呢, 我们可以使用 Tuhu.Extensions.Configuration.ValueBinder.Json 扩展,通过Nuget安装即可,然后修改Startup.cs 文件

publicvoidConfigureServices(IServiceCollectionservices)
{
services.ConfigureJsonValue<LogOptions>("",Configuration.GetSection("LogOptions"));
}

LogOptions:

publicclassLogOptions:IOptions<LogOptions>
{
publicstringLevel{get;set;}

publicintCount{get;set;}

publicLogOptionsValue=>this;
}

看完上述内容,你们对 AgileConfig怎么在.NET中使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。

发布于 2021-05-10 20:34:34
收藏
分享
海报
0 条评论
172
上一篇:怎么在python中停用词过滤 下一篇:怎么在Python中交互CGI编程
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码