首页 > 其他分享 >.net 分布式架构之配置中心

.net 分布式架构之配置中心

时间:2022-11-11 14:03:26浏览次数:45  
标签:web 负载 架构 项目 配置 net sdk config 分布式

.net 统一配置中心,用于所有项目统一的配置集中管理,简化运维和项目部署,具备高灵活性,高性能,高稳定性,高及时性。 同时具备配置项的负载均衡和故障转移,从而实现项目的软性的负载均衡和故障转移能力。

开源QQ群: .net 开源基础服务  238543768


.net 统一配置中心

用于所有项目统一的配置集中管理,简化运维和项目部署,具备高灵活性,高性能,高稳定性,高及时性。
同时具备配置项的负载均衡和故障转移,从而实现项目的软性的负载均衡和故障转移能力。

1.高灵活性
一个项目可以自由组合或者继承多个分类配置,多个分类的相同配置项可以被子分类配置项覆盖。
(举例:项目A可以组合使用“基础数据库配置”,“基础监控配置”,“基础日志配置”,“项目A配置”;项目A配置可以定义自身的特殊配置和覆盖一些基础配置)

2.高稳定性
sdk(客户端)默认会在“本地”保存项目的所有配置“快照”,若统一配置中心异常,sdk将从上一次可用“快照”获取配置,并在配置中心恢复后,获取最新版本。

3.高性能
sdk(客户端)默认在本地内存中缓存“最新版本”的项目配置,sdk获取的配置都从内存版本中获取。

4.高及时性
  4.1 sdk(客户端)默认心跳时间内连接配置中心获取最新配置修改。
  4.2 web端的配置修改,通过第三方消息中间件及时通知相关sdk至配置中心获取最新修改。
  4.3 web端可以重启相关分类/相关项目的客户端,重新初始化所有的配置信息。

5.软性负载均衡
可以在web端手工配置某个配置的负载均衡(可以配置不同的使用权重命中不同的负载均衡配置)
(若要自动,请编写任务挂载到“任务调度”中,根据业务情况,动态调整负载均衡权重。参考openapi接口)

6.软性故障转移
可以在web端手工配置某个配置的故障转移。
(若要自动,请编写任务挂载到“任务调度”中,根据业务情况,动态监测当前配置的故障情况,然后选择使用备用故障配置。参考openapi接口)

使用demo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XXF.BaseService.ConfigManager;//使用ConfigManager命名空间

namespace Dyd.BaseService.ConfigManager.Test
{
/*
* 配置中心使用demo
*/
public class ConfigManagerDemo
{
/// <summary>
/// 配置中心基本配置初始化
/// </summary>
public void InitConfig()
{
XXF.Common.XXFConfig.ProjectName = "projecttest";//当前项目名称,项目代码配置或者从App.config/web.config读取
XXF.Common.XXFConfig.ConfigManagerConnectString = "server=192.168.17.111;Initial Catalog=dyd_bs_config;User ID=sa;Password=123456;";//配置中心管理数据库,项目代码配置或者从App.config/web.config读取
}
/// <summary>
/// 使用demo
/// </summary>
public void UseDemo()
{
/*
* 配置获取优先级
* 1.从本地app.config,web.config中优先获取
* 2.从配置中心获取次之。
*/
string configkey = "configkey1";
var value = ConfigManagerHelper.Get<string>(configkey);//获取配置值

}
}
}

 

 

部分截图

.net 分布式架构之配置中心_配置中心

.net 分布式架构之配置中心_配置中心_02

.net 分布式架构之配置中心_故障转移_03

.net 分布式架构之配置中心_.net_04

.net 分布式架构之配置中心_C#_05

.net 分布式架构之配置中心_.net_06

.net 分布式架构之配置中心_配置中心_07

.net 分布式架构之配置中心_.net_08

 

 

by 车江毅

开源是一种态度,分享是一种精神,学习仍需坚持,进步仍需努力,.net生态圈因你我更加美好。



标签:web,负载,架构,项目,配置,net,sdk,config,分布式
From: https://blog.51cto.com/chejiangyi/5844801

相关文章

  • .net 分布式架构之分布式锁实现
    .net分布式锁,包括redis分布式锁和zookeeper分布式锁的.net实现。分布式锁在解决分布式环境下的业务一致性是非常有用的。分布式锁经常用于在解决......
  • .net 分布式架构之任务调度平台
    .net简单任务调度平台,用于.netdll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等。.net任务调度平台用于.net......
  • .net 分布式架构之业务消息队列
    .net业务消息队列是应用于业务的解耦和分离,应具备分布式,高可靠性,高性能,高实时性,高稳定性,高扩展性等特性。大量的业务消息堆积能力;无单点故障及故障监控......
  • .net 任务调度平台
    .net简单任务调度平台,用于.netdll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等。.net任务调度平台用于.net......
  • 搜索精准度优化架构方案
    搜索精准度优化架构方案概述实现公司对内容精准化搜索和用户精准化推送的目标。采用方案 搜索技术+数据挖掘+机器学习(未来)+人工审核(现在)人员配......
  • 乘风破浪,遇见新一代工业互联网(Industrial Internet)之自主移动机器人(AMR)、自动导航
    什么是自主移动机器人(AMR)从工厂车间的重复性工作到农业、物流、酒店等领域的活动,自主移动机器人的使用正在改变业务的运营方式。自主移动机器人(AutonomousMobile......
  • 超全面Redis分布式高可用方案:哨兵机制
    开发工作中对于分布式缓存高可用方案(搭建Redis缓存高可用方案),Redis主从架构下是如何保证高可用的呢?我们知道RedisSentinel是一个分布式系统,为Redis提供高可用性解决......
  • 关于架构设计的易变性,应该如何理解呢?
    hello,大家好,我是张张,「架构精进之路」公号作者。一、架构设计分层通常情况下,我们的架构设计图大概率会如下图这个样子了,首先声明一点,这其实并没有什么不妥的,这也是很典型的......
  • asp.net中updatepanel控件向外传值
    .aspx代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="UpdatePanel控件传值.aspx.cs"Inherits="UpdatePanel控件传值"%><!DOCTYPEhtmlPUBLIC"-//W3......
  • asp.net中FileUpload控件研究汇总
    .aspx代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="文件上传.aspx.cs"Inherits="文件上传"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transi......