gpt4 book ai didi

.NET 开源配置组件 AgileConfig的使用简介

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章.NET 开源配置组件 AgileConfig的使用简介由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

介绍

在微服务大行其道的今天,系统会被拆分成多个模块,作为单独的服务运行,同时为了集中化管理,我们还需要日志中心,配置中心等,很多开发人员可能更熟悉 ApolloConfig,这个组件功能也很完善,dotnet的客户端也主要是国人在维护和开发,之前公司就是选型的Apollo,而且也在生产环境稳定运行,但是服务端是Java的,而且部署服务端也有些麻烦.

今天主要介绍 AgileConfig,这是一个基于.net core开发的轻量级配置中心,之前跟作者也有过沟通,也很热情帮忙解决问题,它的特点有部署简单、配置简单、使用简单、学习简单等,同时也支持高可用(多节点)和docker部署,使用了FreeSql支持了多种多种数据库存储,Sqlserver, Mysql, Sqlite, PostgreSql,Oracle,FreeSql大法好! 。

  。

架构图

.NET 开源配置组件 AgileConfig的使用简介

  。

部署服务端

首先,我们需要部署服务端,包含了控制台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,最近会更新,大家也可以尝鲜.

.NET 开源配置组件 AgileConfig的使用简介

然后还需要配置节点,多节点保证了高可用,那如果所有节点都挂了的话,程序会读取本地的配置缓存,来保证正常的运行,这点大家不用担心, 我们需要在节点管理页面手动添加节点,这里我启动了一个节点,添加的地址为 http://192.168.100.103:5000 ,需要注意的是,这里在docker环境不能使用 localhost.

.NET 开源配置组件 AgileConfig的使用简介

接下来需要配置应用,点击新增应用,填写应用名称,应用Id和应用密钥.

.NET 开源配置组件 AgileConfig的使用简介

  。

在客户端程序使用

这里使用了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>();      });

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

.NET 开源配置组件 AgileConfig的使用简介

然后可以在代码中使用注入的 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;}

这样我们就可以在代码中,使用注入的 IOptions<LogOptions> 来获取读取配置.

  。

总结

AgileConfig 是使用 .net core 开发的配置组件,部署和使用起来都很简单,但是目前还有一些不足,比如多账号权限管理,和多环境支持,一般是开发,灰度和正式,不过没有关系,项目都是开源的,大家感兴趣的一起建设,完善不足的功能,现在.NET 社区是越来越好了,如果对大家有帮助的,可以支持一下! 。

https://github.com/kklldog/AgileConfig 。

以上就是.NET 开源配置组件 AgileConfig的使用简介的详细内容,更多关于.NET 开源配置组件 AgileConfig的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/myshowtime/p/14621302.html 。

最后此篇关于.NET 开源配置组件 AgileConfig的使用简介的文章就讲到这里了,如果你想了解更多关于.NET 开源配置组件 AgileConfig的使用简介的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com