栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

AgileConfig 一个轻量级配置中心

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AgileConfig 一个轻量级配置中心

介绍

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.json
                    config.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。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/985422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号