基本.net core 开发的轻量级配置中心 - AgileConfig 基本使用

一、AgileConfig

AgileConfig是一个基于.net core开发的轻量级配置中心。AgileConfig秉承轻量化的特点,部署简单、配置简单、使用简单、学习简单,它只提取了必要的一些功能,并没有像Apollo那样复杂且庞大。但是它的功能也已经足够替换webconfig,appsettings.json这些文件了。有关配置中心的基础概念可以看【微服务配置中心的基本概念_胖太乙的博客-CSDN博客

文档地址

Git地址:https://github.com/kklldog/AgileConfig

Gitee地址:https://gitee.com/kklldog/AgileConfig

测试源码下载

https://download.csdn.net/download/IT_rookie_newbie/85452896https://download.csdn.net/download/IT_rookie_newbie/85452896

 特点

  1. 部署简单,最少只需要一个数据节点,支持docker部署

  2. 支持多节点分布式部署来保证高可用

  3. 配置支持按应用隔离,应用内配置支持分组隔离

  4. 支持多环境

  5. 应用支持继承,可以把公共配置提取到一个应用然后其它应用继承它

  6. 使用长连接技术,配置信息实时推送至客户端

  7. 支持IConfiguration,IOptions模式读取配置,原程序几乎可以不用改造

  8. 配置修改支持版本记录,随时回滚配置

  9. 如果所有节点都故障,客户端支持从本地缓存读取配置

  10. 支持Restful API维护配置

数据库支持

目前支持 sqlserver,mysql,sqlite, PostgreSql,Oracle 五种数据库

二、环境搭建

1、前置环境准备

2、安装数据库 

AgileConfig 需要有一个数据库环境, 并且需要将库建好。所以接下来我们就需要使用Docker 拉取一个mysql 数据库, 并且运行起来。

# 拉取mysql 数据库并运行
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  • MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

3、安装AgileConfig

docker run \
--name agile_config \
-e adminConsole=true \
-e db:provider=mysql \
-e db:conn="Data Source=@ip;Database=AgileConfigDB;User ID=root;Password=123456;pooling=true;port=3306;sslmode=none;CharSet=utf8;allowPublicKeyRetrieval=true;" \
-p 5000:5000 \
-v /etc/localtime:/etc/localtime \
-d kklldog/agile_config:latest
  1. adminConsole 配置程序是否为管理控制台。如果为true则启用控制台功能,访问该实例会出现管理界面。

  2. db:provider 配置程序的数据库类型。目前程序支持:sqlserver,mysql,sqlite, PostgreSql,Oracle 五种数据库。

  3. db:conn 配置数据库连接串

运行完毕之后, 就可以使用 http:// ip:5000 的方式去访问控制台了。

三、测试 

1、需要再项目用引用 nuget包,AgileConfig.Client

2、在appsettings.json中增加配置,多个节点使用逗号分隔

"AgileConfig": {
    "appId": "WCS",
    "secret": "123456",
    "nodes": "http://XXXX:5000,http://XXXX:5000,http://XXXX:5000" 
}

 3、在 Program.cs 中增加节点信息配置 “config.AddAgileConfig();

4、读取配置中心服务器上的配置文件

四、测试单点故障

1、将其中一台服务器 “宕机” , 测试及配置是否依旧可以访问。

2、将存有数据库的节点宕机,测试是否依旧可以访问。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
.Net Core Web Api 中配置 PELCO-D/P 控制功能,需要进行以下步骤: 1. 在项目中添加 PELCO-D/P 相关的依赖,可以使用 NuGet 包管理器添加 SerialPort 或 Socket 相关的依赖。 2. 在 appsettings.json 或 appsettings.Development.json 文件中添加 PELCO-D/P 相关的配置信息,比如串口号、波特率、网络地址、端口号等。 3. 在 Startup.cs 文件中添加 PELCO-D/P 相关的服务和中间件。 4. 在 PelcoController 中读取配置信息,并使用配置信息来初始化串口或网络通信。 5. 在 POST 方法中使用配置信息来解析 PELCO-D/P 指令,并生成协议数据包发送给摄像头。 6. 配置 HTTPS 或其他安全机制,保证控制接口的安全性。 具体的配置方式可以参考以下示例代码: ```csharp // appsettings.json 文件中配置 PELCO-D/P 相关的信息 { "PelcoD": { "PortName": "COM1", "BaudRate": 9600, "IPAddress": "192.168.1.100", "Port": 6001 } } // Startup.cs 文件中添加 PELCO-D/P 相关的服务和中间件 public void ConfigureServices(IServiceCollection services) { // 注册 PELCO-D/P 相关的服务 services.AddSingleton<PelcoDService>(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 使用 PELCO-D/P 相关的中间件 app.UseMiddleware<PelcoDMiddleware>(); } // PelcoController 中读取配置信息,并使用配置信息初始化串口或网络通信 public class PelcoController : Controller { private readonly PelcoDService _pelcoDService; public PelcoController(IConfiguration configuration, PelcoDService pelcoDService) { _pelcoDService = pelcoDService; var pelcoDSettings = configuration.GetSection("PelcoD"); var portName = pelcoDSettings.GetValue<string>("PortName"); var baudRate = pelcoDSettings.GetValue<int>("BaudRate"); var ipAddress = pelcoDSettings.GetValue<string>("IPAddress"); var port = pelcoDSettings.GetValue<int>("Port"); _pelcoDService.Connect(portName, baudRate, ipAddress, port); } // POST 方法中解析 PELCO-D/P 指令,并发送给摄像头 [HttpPost] public IActionResult ControlPelcoD([FromBody] PelcoDCommand command) { var data = PelcoDHelper.GenerateCommandData(command); _pelcoDService.Send(data); var response = _pelcoDService.Receive(); return Ok(response); } } ``` 上述代码中,PelcoDService 是一个 PELCO-D/P 通信服务,负责连接、发送和接收数据。PelcoDMiddleware 是一个 PELCO-D/P 中间件,用于验证控制接口的安全性。PelcoDHelper 是一个 PELCO-D/P 辅助类,用于生成协议数据包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖太乙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值