专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务

主要目标:

  • 部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线
  • 部署动态化:更改配置,无需重新打包或重启,即可 实时生效
  • 统一管理:提供web平台,统一管理 多个环境(RD/QA/PRODUCTION)、多个产品 的所有配置

项目信息

  • CLIENT 端:

    • Java: 目前唯一支持语言
    • python:打算支持
    • PHP:暂未支持
  • WEB 管理端:
    • Java SpringMvc 实现,前后端分离 实现方式(基于Spring 4.1.7.RELEASE)

java client

disconf.git branches and Maven version:

  • dev(develop branch): 2.6.28-SNAPSHOT
  • master(stable branch):2.6.27
  • 更新日志
  • 在Maven Central Repository里查看 com.baidu.disconf

Java Client Elegant Usage Preview

  • 注解式分布式配置使用方式
  • XML配置式分布式配置方式

当前版本功能特点

  • 支持配置(配置项+配置文件)的分布式化管理
  • 配置发布统一化
  • 极简的使用方式(注解式编程 或 XML无代码侵入模式)
  • 低侵入性或无侵入性、强兼容性

未来版本(完全版)功能特点

Disconf的功能特点描述图:

查看大图

重要功能特点

  • 支持配置(配置项+配置文件)的分布式化管理
  • 配置发布统一化
    • 配置发布、更新统一化:

      • 同一个上线包 无须改动配置 即可在 多个环境中(RD/QA/PRODUCTION) 上线
      • 配置存储在云端系统,用户统一管理 多个环境(RD/QA/PRODUCTION)、多个平台 的所有配置
    • 配置更新自动化:用户在平台更新配置,使用该配置的系统会自动发现该情况,并应用新配置。特殊地,如果用户为此配置定义了回调函数类,则此函数类会被自动调用。
  • 配置异构系统管理
    • 异构包部署统一化:这里的异构系统是指一个系统部署多个实例时,由于配置不同,从而需要多个部署包(jar或war)的情况(下同)。使用Disconf后,异构系统的部署只需要一个部署包,不同实例的配置会自动分配。特别地,在业界大量使用部署虚拟化(如JPAAS系统,SAE,BAE)的情况下,同一个系统使用同一个部署包的情景会越来越多,Disconf可以很自然地与他天然契合。
    • 异构主备自动切换:如果一个异构系统存在主备机,主机发生挂机时,备机可以自动获取主机配置从而变成主机。
    • 异构主备机Context共享工具:异构系统下,主备机切换时可能需要共享Context。可以使用Context共享工具来共享主备的Context。
  • 极简的使用方式(注解式编程 或 XML无代码侵入模式):我们追求的是极简的、用户编程体验良好的编程方式。目前支持两种开发模式:基于XML配置或者基于注解,即可完成复杂的配置分布式化。

注:配置项是指某个类里的某个Field字段。

其它功能特点

  • 低侵入性或无侵入性、强兼容性:

    • 低侵入性:通过极少的注解式代码撰写,即可实现分布式配置。
    • 无侵入性:通过XML简单配置,即可实现分布式配置。
    • 强兼容性:为程序添加了分布式配置注解后,开启Disconf则使用分布式配置;若关闭Disconf则使用本地配置;若开启Disconf后disconf-web不能正常Work,则Disconf使用本地配置。
  • 支持配置项多个项目共享,支持批量处理项目配置。
  • 配置监控:平台提供自校验功能(进一步提高稳定性),可以定时校验应用系统的配置是否正确。

模块架构图

查看大图

模块信息

  • disconf

    • CLIENT: client目标是支持多语言。目前只提供了java语言客户端。

      • JAVA

        • disconf-core: 分布式配置基础包模块
        • disconf-client: 分布式配置客户端模块, 依赖disconf-core包。 用户程序使用它作为Jar包进行分布式配置编程。
        • disconf-tool: 分布式配置工具包,依赖disconf-core包。 Disconf-tool是disconf的辅助工具类, 目前使用不多,建议不使用。
    • 管理端:disconf-web是统一的分布式配置管理平台。disconf-web: 分布式配置平台服务模块, 依赖disconf-core包。采用SpringMvc+纯HTML方式(前后端分离架构)实现。用户使用它来进行日常的分布式配置管理。
  • demo
    • JAVA client DEMO:

      • disconf-standalone-demo: 使用disconf的基于Spring的standalone demo程序
      • disconf-standalone-dubbo-demo: 集成了disconf和dubbo的基于Spring的standalone demo程序
      • disconf-spring-boot-demo: 使用disconf的spring-boot demo程序,更少的配置

用户指南

clint

java client: disconf-client 使用

在您的 Maven POM 文件里加入:

<dependency><groupId>com.baidu.disconf</groupId><artifactId>disconf-client</artifactId><version>2.6.27</version>
</dependency>

server: disconf-web 使用

部署方法请参见:https://github.com/knightliao/disconf/tree/master/disconf-web

全新主页,高清大图:

APP+环境+版本+ZK查询:

java client Tutorials

总体概述

  • TutorialSummary 功能总体概述
  • 文章介绍:分布式配置管理平台Disconf

基于注解式的分布式配置(支持配置文件和配置项)

推荐新建的项目使用disconf时使用

  • Tutorial 1 注解式分布式的配置文件
  • Tutorial 2 注解式分布式的配置文件高级篇: 配置更新的通知
  • Tutorial 3 注解式分布式的配置项
  • Tutorial 4 注解式分布式静态配置文件和静态配置项

注:将配置文件移至一个专有类里,而不是分散在项目的各个地方,整个代码架构清晰易懂、易管理。 即便如果哪天不使用disconf,也只需要将注解去掉即可。

基于XML的分布式配置(无代码侵入)(仅支持配置文件)

推荐旧项目使用disconf时使用

  • Tutorial 8 基于XML的分布式配置文件管理,自动reload
  • Tutorial 5 基于XML的分布式配置文件管理,不会自动reload,对于那些比较重的资源如jdbc等,特别有用

其它

  • Tutorial 6 disconf-web 功能详解
  • Tutorial 7 可自定义的部分托管的分布式配置
  • Tutorial disconf与dubbo的集成 demo
  • Tutorial 9 实现真正意义上的统一上线包
  • Tutorial 10 实现一个配置更新下载器agent
  • 配置说明
  • 异常考虑
  • 局限性和注意事项
  • 注意事项
  • Zookeeper异常考虑

详细设计和讨论

  • disconf-client详细设计文档
  • disconf-web详细设计文档
  • 细节讨论

大家都在使用disconf

  • [百度](5+条产品线使用)
  • 润生活 (千万融资,全线产品使用)
  • 拉勾网
  • 人脉通 (目前已B轮融资,4条产品线使用)
  • 普联(Tp-link)技术有限公司
  • 杭州数梦工场科技有限公司
  • 众钱网
  • 更多

转载于:https://www.cnblogs.com/zhanghaiyang/p/7213590.html

Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)...相关推荐

  1. Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)

    专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务. 主要目标: 部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线 部 ...

  2. Distributed Configuration Management Platform(分布式配置管理平台)

    2019独角兽企业重金招聘Python工程师标准>>> 专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务. 主要目标: 部署极其简单:同一个上线包,无须 ...

  3. java web学习项目20套源码完整版

    java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动化 ...

  4. 2019年Java Web学习笔记目录

    Java Web学习笔记目录 1.Java Web学习笔记01:动态网站初体验 2.Java Web学习笔记02:在Intellij里创建Web项目 3.Java Web学习笔记03:JSP元素 4. ...

  5. java web学习笔记(持续更新)

    java web学习笔记 一.Java Web简介 二.认识Servlet 1.什么是Servlet? 2.请求路径 3.tomcat 4.Servlet的使用 三.Servlet简单应用 1.创建S ...

  6. Java Web 学习路线

    Java Web 学习路线 实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了. 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java ...

  7. Java Web 学习路线(2018)

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了. 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总 ...

  8. 1、JAVA web学习笔记

    以下内容是在学习某机构视频过程中记录的笔记,不准确的地方请大家评论指正. JavaWeb是使用Java语言开发基于互联网的项目. 资源分类有两类: 静态资源: 使用静态网页开发技术发布的资源. 特点: ...

  9. java web学习笔记-jsp篇

    转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面   表现形 ...

最新文章

  1. mysql list列表批量更新数据,Mybatis传入List实现批量更新的示例代码
  2. 数据库性能检查指导方案
  3. PHP 计算两个两个文件的相对路径
  4. 使用 IAsyncResult 进行 .NET 异步编程
  5. JavaScript高级程序设计 DOM事件处理 读书笔记
  6. YII2 rules 规则验证器
  7. 超定方程组的householder变换求解matlab实现
  8. 活在迷茫中,不是活在当下
  9. Windows Server 2016 安装.NET Framework 3.5 错误处理
  10. GIS-测绘学概论(5)
  11. 查看电脑系统是否永久激活
  12. 大数据导论答案_2020高校邦《数据科学与大数据技术导论》课后作业答案
  13. Ubuntu 16.04通过无线网卡使用桥接模式上网
  14. UE4 蒙太奇 组合动画
  15. 二值化阈值自动选取方法
  16. JVM原理之完整的一次GC流程
  17. sku的处理 电商SKU
  18. 内核级python:编译器的词法和语法解析基本原理
  19. talib.MOM动量(Momentum)指标MTM、MAMTM
  20. WIN10下CANdb++编辑器的下载和安装

热门文章

  1. java学习日记(9)———socket,网络编程的学习
  2. 让多核CPU占用率曲线听你指挥(Windows实现)——《编程之美》1.1学习笔记
  3. SQL Server实用经验与技巧大汇集 [转]
  4. 大数据之-Hadoop环境搭建_安装hadoop---大数据之hadoop工作笔记0018
  5. ES6新特性_浏览器中使用ES6模块化的另一种方式--JavaScript_ECMAScript_ES6-ES11新特性工作笔记044
  6. 那些年,我们一起追过的足球
  7. centos 7 菜鸟第一天 双启动
  8. 嵌入式电路设计(外围模块)
  9. 嵌入式操作系统内核原理和开发(实时系统中的定时器)
  10. 罗技无线网卡linux,linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )