文档章节

【开源】.net 分布式架构之配置中心

车江毅
 车江毅
发布于 2015/11/21 14:26
字数 837
阅读 2381
收藏 8

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

开源地址: http://git.oschina.net/chejiangyi/Dyd.BaseService.ConfigManager

.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);//获取配置值
            
        }
    }
}

部分截图



by 车江毅

© 著作权归作者所有

共有 人打赏支持
车江毅

车江毅

粉丝 229
博文 22
码字总数 39750
作品 11
杭州
架构师
私信 提问
加载中

评论(4)

车江毅
车江毅

引用来自“老吴Ch”的评论

使用什么实现的啊,能分享下不?
今天怎么这么多人关注?
有源码 自己看 不复杂!或者加入开源群保持沟通😄
老吴Ch
老吴Ch
使用什么实现的啊,能分享下不?
车江毅
车江毅

引用来自“ylm3721”的评论

.net程序员强烈支持!!!!
ylm3721
ylm3721
.net程序员强烈支持!!!!
.Net 大型分布式基础服务架构横向演变概述

一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维...

车江毅
2016/02/26
2.1K
10
如何搭建完备实用的基础架构与中间件体系?

基础架构,是项目基础库/基础软件/基础平台的架构与实现。它不直接从事任何对外业务,而是为后端工程师提供「服务」,如 RPC、负载均衡、消息队列、存储中间件等等。而中间件是一种独立的系统...

OSC源创君
2018/05/21
2.7K
9
数人云Meetup|Building Microservice NO.1 深圳站

发展变革,容器化的兴起,带来应用开发部署的变革,也带来应用设计架构和运维部署变化; 敏捷为王,造就Cloud Native技术及文化大势已成,云原生不仅是技术,在技术之上更是一种团队技术文化...

数人云
2018/01/04
8
0
数人云Meetup|Building Microservice NO.1 深圳站

发展变革,容器化的兴起,带来应用开发部署的变革,也带来应用设计架构和运维部署变化; 敏捷为王,造就Cloud Native技术及文化大势已成,云原生不仅是技术,在技术之上更是一种团队技术文化...

数人云
2018/01/04
0
0
分布式数据传输中间件 - DTLE

DTLE是什么? DTLE是一个开源的数据传输中间件,其针对的核心场景如下: 跨数据中心的数据传输:DTLE能在数据中心间进行可靠数据传输,并提供链路压缩以降低传输成本 云间数据同步/迁移:DTL...

爱可生
2018/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jenkins安装

https://my.oschina.net/u/593517/blog/1797968 jenkins 安装 https://my.oschina.net/u/593517/blog/3028175 GIT 安装 https://my.oschina.net/u/593517/blog/3028179 maven 安装 插件安装 ......

Gm_ning
25分钟前
2
0
小言服务端解决方案-监控

框架保证方向,整体包容细节 为保证服务端运行平稳正常,owner应使得系统应保有相应的监控:系统监控,业务监控。而服务运行的平稳高效是否有保障跟监控粒度又成直接的正比关系。本文仅针对开...

重城重楼
37分钟前
2
0
搜索引擎(Elasticsearch搜索详解)

学完本课题,你应达成如下目标: 掌握ES搜索API的规则、用法。 掌握各种查询用法 搜索API 搜索API 端点地址 GET /twitter/_search?q=user:kimchy GET /twitter/tweet,user/_search?q=user:...

这很耳东先生
今天
7
0
浅谈如何减少GC的次数

GC会stop the world。会暂停程序的执行,带来延迟的代价。所以在开发中,我们不希望GC的次数过多。 本文将讨论如何在开发中改善各种细节,从而减少GC的次数。 (1)对象不用时最好显式置为 Nu...

浮躁的码农
今天
1
0
jpa 自定义返回对象

任何ORM框架都少不了开放自定义sql的问题。jpa自然也不例外,很多场景需要写复杂sql的。 首先定义一个方法签名,然后打上@Query注解。像下面这样,需要注意nativeQuery,这个表示query中的字...

朝如青丝暮成雪
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部