介绍

AgileConfig 是一个基于.net core 开发的轻量级配置中心,秉承轻量化的特点,部署简单、配置简单、使用简单,提取了必要的一些功能,并没有像 Apollo 那样复杂且庞大。但是它的功能也已经足够替换 webconfig,appsettings.json 这些文件。

角色

  • 客户端
    客户端程序是使用 netstandard2.0 开发的一个类库,方便 .net core 程序接入,nuget 搜agileconfig.client 就可以安装。可以在启动客户端的时候配置多个节点的地址,客户端会随机挑选一个进行连接,连接成功后会维持一个 websocket 长连接。如果连接的节点发生故障导致连接中断,客户端会继续随机一个节点进行连接,直到连接成功。

  • 节点 管理程序
    节点是使用 asp.net core 开发的一个服务。为了部署简单,直接把管理程序跟节点服务合二为一了。任何一个节点都可以在启动的时候配置环境变量开启管理程序功能。

  • 数据库
    使用数据库来存储数据,目前支持 Sqlserver、Mysql、Sqlite、PostgreSql、Oracle 五种数据库。

部署

1、DB

本篇使用 mysql ,数据库信息如下,初始库为空库

Server=192.168.200.123;Database=agile_configs;Uid=root;Pwd=12345678;Port=3306;Allow User Variables=True;sslMode=None;allowPublicKeyRetrieval=true

2、AgileConfig

1 . 部署
这里为空方便我们使用 docker 进行部署,如下命令

docker run --name agile_config -e adminConsole=true -e db:provider=mysql -e db:conn="Server=192.168.200.123;Database=agile_configs;Uid=root;Pwd=12345678;Port=3306;Allow User Variables=True;sslMode=None;allowPublicKeyRetrieval=true;"  -p 5000:5000  -v /etc/localtime:/etc/localtime  -d kklldog/agile_config:latest


2. UI
容器启动成功后,浏览器访问 http://192.168.200.123:5000/ 第一次登录,会设置初始密码和用户名称


DotNetCore

注册服务

1 . 新建程序,安装客户端 AgileConfig.Client

2. 配置链接信息

  //agile_config"AgileConfig": {"appId": "ad-api-wikifx","secret": "12345678","nodes": "http://192.168.200.123:5000", //多个节点使用逗号分隔, http://192.168.200.123:5000,http://192.168.200.123:5001"name": "ad-api-wikifx","tag": "api"}

3 . 配置 AgileConfig

                .ConfigureAppConfiguration((context, config) =>{//default appsettings.jsonconfig.AddAgileConfig(arg => Console.WriteLine($"config changed , action:{arg.Action} key:{arg.Key}"));})

5 . 注册服务

services.AddAgileConfig();

6 . 查看连接

读取配置

    [Route("[controller]")][ApiController]public class HomeController : ControllerBase{private readonly IConfiguration _IConfiguration;private readonly IConfigClient _configClient;public HomeController(IConfiguration configuration, IConfigClient configClient){_IConfiguration = configuration;_configClient = configClient;}[HttpGet,Route("Get")]public IActionResult Get(){var ip138 = _configClient["api:ip138"];var connectionString = _configClient["ConnectionString"];var ip1381 = _IConfiguration["api:ip138"];var connectionString1 = _IConfiguration["ConnectionString"];return Ok(ip138);}}



答疑解惑

1、配置数据

AgileConfig 配置数据都会存储在 DB中,可以理解为平时开发的程序,数据都被持久化到 DB。

AgileConfig 一个轻量级配置中心相关推荐

  1. 造轮子-AgileConfig一个基于.NetCore开发的轻量级配置中心

    微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移.玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的组件可以选,比如spring-cloud-config,apoll,discon ...

  2. .NET轻量级配置中心AgileConfig

    描述 基于NetCore开发的轻量级配置中心,部署简单.配置简单,使用简单,可以根据个人或者公司需求采用. 部署简答,最少只需要一个数据节点,支持docker部署 支持多节点分布式部署来保证高可用 配 ...

  3. AgileConfig - 轻量级配置中心1.2.0发布,全新的UI

    AgileConfig自发布以来有个"大问题"-UI太丑.因为当初这个项目是给自己用的,连UI界面都没有,全靠手动在数据库里改配置.后来匆匆忙忙使用bootstrap3简单的码了一 ...

  4. AgileConfig-.net core 轻量级配置中心

    AgileConfig 这是一个基于.net core开发的轻量级配置中心. 部署简单,最少只需要一个数据节点,支持docker部署 支持多节点分布式部署来保证高可用 应用支持继承,可以把公共配置提取 ...

  5. AgileConfig轻量级配置中心1.4.0发布,重构了发布功能

    加入 NCC 先说一个事,AgileConfig 在 7 月底终于通过了 NCC 社区的审核,正式成为了 NCC 大家庭的一员.这对 AgileConfig 来说是一个里程碑,希望加入 NCC 后能更 ...

  6. AgileConfig轻量级配置中心1.3.0发布,支持多用户权限控制

    AgileConfig 当初是设计给我自己用的一个工具,所以只设置了一道管理员密码,没有用户的概念.但是很多同学在使用过后都提出了需要多用户支持的建议.整个团队或者整个公司都使用同一个密码来管理非常的 ...

  7. .NET Core with 微服务 - Consul 配置中心

    上一次我们介绍了Elastic APM组件.这一次我们继续介绍微服务相关组件配置中心的使用方法.本来打算介绍下携程开源的重型配置中心框架 apollo 但是体系实在是太过于庞大,还是让我爱不起来.因为 ...

  8. AgileConfig-如何使用AgileConfig.Client读取配置

    前面的文章都是介绍AgileConfig服务端已经控制台是如何工作.如何使用的,其实AgileConfig还有一个重要的组成部分:AgileConfig.Client. AgileConfig.Cli ...

  9. AgileConfig-轻量级配置中心 1.1.0 发布,支持应用间配置继承

    AgileConfig轻量级配置中心自第一个版本发布不知不觉已经半年了.在并未进行什么推广的情况下收到了250个star,对我有很大的鼓舞,并且也有不少同学试用,并且给出了宝贵的意见,非常感谢他们.其 ...

最新文章

  1. C#WIFI搜索与连接
  2. java 深克隆_Java实现深克隆的两种方式
  3. xulrunner html5,XULRunner入门
  4. BeautifulSoup 返回网页标签的名称、父标签名称、行号、完整路径
  5. Sublime Text3 3143 注册码,亲测可用!
  6. 每日一题题目16:简单的python练习题(1-10)
  7. MIT名誉校长:机器学习会成为像Word一样的工具
  8. springboot细节挖掘(配置Swagger2)
  9. GUID基本概念以及C#、SqlServer中GUID基本用法
  10. python之format函数学习
  11. 打印机无法打印测试页是什么原因
  12. 文件名的命名规则是什么
  13. Matlab基于蚁群算法求解多旅行商MTSP问题
  14. Si5341时钟芯片使用说明
  15. 教程 - 【超详细】从零开始部署网站——阿里云主机CentOS系统
  16. httpwatch11.1---专业版
  17. ESP32 CAM与服务器(python)UDP视频传输
  18. 任建新照常去办公室领取工资
  19. IDC:未来中国MES市场仍将快速发展分化
  20. 挑战EUV光刻:NIL靠谱吗?一文秒懂

热门文章

  1. 饿了么UI 开关跟多文本编辑,下拉
  2. Mysql批量导出与批量导入
  3. 测试游戏的软件电脑运行,什么是软件性能测试_电脑测试性能软件_测试电脑游戏性能软件...
  4. 为什么你的Facebook广告策略应该包括SEO
  5. 精益生产-丰田生产方式(TPS)在软件开发中的运用
  6. Redis——商品秒杀之库存遗留问题
  7. 生活哲理故事系列之五(转贴)
  8. 活动目录功能级别降级
  9. 【拔刀吧 TensorFlow】TensorFlow学习笔记五
  10. 计算机管理创建扩展分区,win7系统怎么创建磁盘管理扩展分区