当服务逐渐的增多,对各服务的配置管理愈加重要,轻量级的配置中心,入手或是搭建都简单许多,基于.net core开发的轻量级配置中心AgileConfig,功能强大,上手简单。
Agile Config支持热更新。AgileConfig Client连上节点后每30s会跟节点心跳一次。每次心跳都会比较Client上所有配置的hash跟服务端的所有配置的hash是否一致,如果不一致那么会全量刷新一次配置。
当客户端读取配置后会在本地生成一个app.agileconfig.client.configs.cache
文件。如果线上节点离线,会从本地配置读取。
项目地址:
部署
拉取镜像
docker pull kklldog/agile_config:latest
# mysql使用下面的镜像
docker pull kklldog/agile_config:mysqlconnector
初始化数据库
用户只需要手工建一个空库,所有的表在第一次启动的时候都会自动生成。目前支持sqlserver,mysql,sqlite, PostgreSql,Oracle 五种数据库。 provider对照:
- sqlserver = SqlServer
- mysql = MySql
- sqlite = Sqlite
- npgsql = PostgreSql
- oracle = Oracle
运行服务端
docker run -d --name StarCityAgileConfig -e TZ=Asia/Shanghai -e adminConsole=true \
-e db:provider=mysql \
-e db:conn="Server=xxx; Database=xxx;Port=xxx;charset=utf8;uid=xxx;pwd=xxx;" \
-p 9527:5000 \
-v /dockerdata/agileconfig:/app/db \
kklldog/agile_config:latest
使用sqlserver数据库需要在连接串上加上 TrustServerCertificate=True
;
通过docker建立一个agile_config实例,其中有3个环境变量需要配置:
- adminConsole 配置程序是否为管理控制台。如果为true则启用控制台功能,访问该实例会出现管理界面。
- db__provider 配置程序的数据库类型。目前程序支持:sqlserver,mysql,sqlite, PostgreSql,Oracle 五种数据库。
- db__conn 配置数据库连接串
使用 docker-compose 运行多节点集群, 环境变量 cluster=true 会尝试获取容器的 IP ,主动注册到节点列表:
version: '3'
services:
agile_config_admin:
image: "kklldog/agile_config"
ports:
- "15000:5000"
networks:
- net0
volumes:
- /etc/localtime:/etc/localtime
environment:
- TZ=Asia/Shanghai
- adminConsole=true
- cluster=true
- db__provider=mysql
- db__conn= database=configcenter;data source=192.168.0.115;User Id=root;password=mdsd;port=3306
agile_config_node1:
image: "kklldog/agile_config"
ports:
- "15001:5000"
networks:
- net0
volumes:
- /etc/localtime:/etc/localtime
environment:
- TZ=Asia/Shanghai
- cluster=true
- db__provider=mysql
- db__conn= database=configcenter;data source=192.168.0.115;User Id=root;password=mdsd;port=3306
depends_on:
- agile_config_admin
agile_config_node2:
image: "kklldog/agile_config"
ports:
- "15002:5000"
networks:
- net0
volumes:
- /etc/localtime:/etc/localtime
environment:
- TZ=Asia/Shanghai
- cluster=true
- db__provider=mysql
- db__conn= database=configcenter;data source=192.168.0.115;User Id=root;password=mdsd;port=3306
depends_on:
- agile_config_admin
networks:
net0:
Agile Config Web使用
初始化管理员密码
第一次运行程序需要初始化超级管理员密码,超管用户名固定为 admin
节点
AgileConfig支持多节点部署,所有的节点都是平行的。为了简化部署,AgileConfig并没有单独的控制台程序,请直接使用任意一个节点作为控制台。当环境变量adminConsole=true时,该节点同时兼备数据节点跟控制台功能。为了控制台能够管理节点,所以需要在控制台配置节点的信息。
标签:Core,ASP,agile,配置,db,Agile,控制台,config,节点 From: https://www.cnblogs.com/RainFate/p/16969634.html