AgileConfig 从公布到当初,收到不少同学的 issue 说须要多环境的反对。也就是一个利用在不同的环境下能够配置不同的配置项。这是一个十分有用的性能,就跟咱们开发的时候会设置多个 appsettings.json 文件一样,比方 appsettings.development.json、appsetting.production.json 等等。那么这次 1.5 版本就为大家带来了这个性能。
上面介绍下如何应用多环境配置性能。
运行控制台节点
拉取最新的 latest 或者 release-1.5.0 的 docker 镜像,运行控制台节点即可反对多环境配置。
sudo docker run \
--name agile_config \
-e adminConsole=true \
-e db:provider=sqlite \
-e db:conn="Data Source=agile_config.db" \
-p 5000:5000 \
-v /etc/localtime:/etc/localtime \
#-v /your_host_dir:/app/db \
-d kklldog/agile_config:release-1.5.0
节点运行起来后,在配置项治理界面的右上角即可切换环境。
自定义环境
AgileConfig 默认内置了 DEV, TEST, STAGING, PROD 四个罕用的环境,如果用户感觉不够用或者不想要那么多环境的话能够进行本人定义。
找到数据库的 agc_setting 表,对其中 id = environment 的行进行批改。配置名称之间应用英文输出状态的逗号分隔。
为环境独自配置数据库
AgileConfig 默认状况下会把所有的配置项都存储在 db:conn 指定的数据库上面。然而对于多环境来说,集中式的配置存储显然不太适合。特地是对于生产环境来说不太可能跟开发测试环境都部署在同一个数据库上。AgileConfig 反对对某个环境配置独自的数据库。
在启动节点的时候为某个环境独自配置数据库:
-e db:env:TEST:provider=mysql \
-e db:env:TEST:conn= "Database=agile_config_test;Data Source=192.168.0.111;User Id=dev;Password=dev@123;port=3306" \
-e db:env:PROD:provider=mysql \
-e db:env:PROD:conn= "Database=agile_config_prod;Data Source=192.168.0.1111;User Id=dev;Password=dev@123;port=3306" \
客户端
为配合 AgileConfig 1.5 版本请应用 AgileConfig.Client 1.2 及以上版本。
Install-Package AgileConfig.Client -Version 1.2.1
在配置文件上指定环境参数,如果不配置那么默认为 DEV 环境。
{
"AgileConfig": {
"appId": "test_app",
"secret": "","env":"DEV""nodes": "http://localhost:5000",
"name": "client1",
"tag": "tag1",
}
}
对于降级
如果从 1.4 版本升级上来的话,那么请对以下表手动增加 env 字段,并且更新这个字段的值为你想要设置的环境。
agc_config;
agc_config_published;
agc_publish_detail;
agc_publish_timeline;
以 mysql agc_config 表为例:alter table agc_config add env varchar(50);
update agc_config set env = 'DEV' where 1=1;
最初
✨✨✨Github 地址:https://github.com/dotnetcore/AgileConfig 开源不易,欢送 star✨✨✨
演示地址:http://agileconfig_server.xbaby.xyz/ 超级管理员账号:admin 明码:123456