华域联盟 .Net .NET 开源配置组件 AgileConfig的使用简介

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

.NET 开源配置组件 AgileConfig的使用简介
 更新时间:2021年05月08日 08:52:39   作者:SpringLeee  

这篇文章主要介绍了.NET 开源配置组件 AgileConfig的使用简介,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下

目录介绍
架构图部署服务端
在客户端程序使用
总结
介绍

在微服务大行其道的今天,系统会被拆分成多个模块,作为单独的服务运行,同时为了集中化管理,我们还需要日志中心,配置中心等,很多开发人员可能更熟悉 ApolloConfig,这个组件功能也很完善,dotnet的客户端也主要是国人在维护和开发,之前公司就是选型的Apollo,而且也在生产环境稳定运行,但是服务端是Java的,而且部署服务端也有些麻烦。
今天主要介绍 AgileConfig,这是一个基于.net core开发的轻量级配置中心,之前跟作者也有过沟通,也很热情帮忙解决问题,它的特点有部署简单、配置简单、使用简单、学习简单等,同时也支持高可用(多节点)和docker部署,使用了FreeSql支持了多种多种数据库存储,Sqlserver, Mysql, Sqlite, PostgreSql,Oracle,FreeSql大法好!
架构图

部署服务端

首先,我们需要部署服务端,包含了控制台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 配置数据库连接串

访问 localhost:5000/, 第一次启动,程序会要求我们初始化管理员密码,设置完成以后,进入到首页,另外作者最近已经用 React 重构了UI,最近会更新,大家也可以尝鲜。

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

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

在客户端程序使用

这里使用了asp net core web项目示例,首先需要安装客户端组件,执行一下命令或者通过Nuget安装。

Install-Package AgileConfig.Client

然后修改appsetting.json 文件

{
"AgileConfig": {
"appId": "LogService",
"secret": "123456",
"nodes": "localhost:5000,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>();
});

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

然后可以在代码中使用注入的 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 社区是越来越好了,如果对大家有帮助的,可以支持一下!
github.com/kklldog/AgileConfig
以上就是.NET 开源配置组件 AgileConfig的使用简介的详细内容,更多关于.NET 开源配置组件 AgileConfig的资料请关注华域联盟其它相关文章!

您可能感兴趣的文章:ASP.NET开源导入导出库Magicodes.IE完成Csv导入导出的方法详解开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)详解最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)详解免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五).NET中开源文档操作组件DocX的介绍与使用基于.NET平台常用的框架和开源程序整理.NET 开源项目Polly的简单介绍

.NET
配置组件
AgileConfig

相关文章
ASP.NET网站聊天室的设计与实现(第3节)这篇文章主要介绍了ASP.NET网站聊天室的设计与实现,了解Session、Application对象的属性和事件,并且掌握利用它们在页面间保存和传递数据的方法,需要的朋友可以参考下 2015-08-08
GridView控件实现数据的显示和删除(第8节)这篇文章主要介绍了GridView控件实现数据的显示和删除,以新闻网站为例,实现对新闻数据的操作,了解各种数据源控件与数据绑定控件的类型和作用,需要的朋友可以参考下 2015-08-08
ASP.NET Core MVC基础学习之局部视图(Partial Views)这篇文章主要给大家介绍了关于ASP.NET Core MVC基础学习之局部视图(Partial Views)的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core MVC具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 2019-08-08
ASP.NET Core依赖注入系列教程之服务的注册与提供这篇文章主要给大家介绍了关于ASP.NET Core依赖注入系列教程之服务的注册与提供的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧 2018-11-11
.NET Core 实现定时抓取网站文章并发送到邮箱本片文章通过实例讲述.NET Core 实现定时抓取博客园首页文章信息并发送到邮箱这个功能,对此有兴趣的朋友参考学习下。 2018-02-02
ASP.NET数组删除重复值实现代码在ASP.NET编程中,要想删除数组的重复值可以使用多种方法代码实现相同的效果。今天,在某个博客中看到某功能代码中的一小段代码很不错,它就是用来移动数组中相同值的方法,分享给大家 2015-10-10
一步步打造简单的MVC电商网站BooksStore(4)这篇文章主要和大家一起一步步打造一个简单的MVC电商网站,MVC电商网站BooksStore第四篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2017-04-04
.NET中弹出对话框的方法汇总下面是本人对常用对话框使用的汇总,希望对大家有所帮助,同时也欢迎大家补充。 2013-07-07
ASP.NET AJAX 1.0 RC开发10分钟图解12月15日,ASP.NET AJAX 1.0 RC版发布,我下载安装试用了一下,没有写一行代码,实现了一个简单的AJAX应用,以下为截图说明。 2008-03-03
asp.net中Word转Html的办法(不需要WORD组件)最近碰到一个需求,在文本编辑器中实现“Word导入”功能 发现了几种方法,只是作为总结使用 2013-04-04

最新评论

本文由 华域联盟 原创撰写:华域联盟 » .NET 开源配置组件 AgileConfig的使用简介

转载请保留出处和原文链接:https://www.cnhackhy.com/4914.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者:

上一篇

已经没有了

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部