Disconf 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Disconf 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Disconf 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 apache2.0
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织 百度
地区 国产
投 递 者 knightliao
适用人群 未知
收录时间 2015-04-13

软件简介

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

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

包括 百度滴滴打车银联网易拉勾网 等知名互联网公司正在使用!

「disconf」在「2015 年度新增开源软件排名 TOP 100(OSC开源中国提供)」中排名第16强。

主要目标:

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

demos

https://github.com/knightliao/disconf-demos-java

项目信息

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

java client

disconf.git branches and Maven version:

Java Client Elegant Usage Preview

当前版本功能特点

  • 支持配置(配置项+配置文件)的分布式化管理
  • 配置发布统一化
  • 极简的使用方式(注解式编程 或 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使用本地配置。
  • 支持配置项多个项目共享,支持批量处理项目配置。
  • 配置监控:平台提供自校验功能(进一步提高稳定性),可以定时校验应用系统的配置是否正确。

模块架构图

查看大图

模块信息

  • 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方式(前后端分离架构)实现。用户使用它来进行日常的分布式配置管理。

用户指南

clint

java client: disconf-client 使用

在您的 Maven POM 文件里加入:

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

server: disconf-web 使用

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

全新主页,高清大图:

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

java client Tutorials

总体概述

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

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

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

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

推荐旧项目使用disconf时使用

demos

https://github.com/knightliao/disconf-demos-java

其它

详细设计和讨论

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(21) 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
Vmware Spring Framework 注入漏洞
输入验证不恰当
Vmware Spring Framework是美国威睿(Vmware)公司的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。 Spring Framework 存在注入漏洞,该漏洞源于通过日志注入绕过 Spring Framework 的访问限制,以更改数据。
CVE-2021-22096 MPS-2021-18890
2022-08-08 18:08
commons-codec:commons-codec 存在信息暴露漏洞
信息暴露
commons-codec:commons-codec 是一个包含各种格式(如 Base64 和 Hexadecimal)的简单编码器和解码器的包。此软件包的受影响版本容易受到信息泄露的影响。
MPS-2022-11853
2022-08-08 18:08
Netty 环境问题漏洞
HTTP请求的解释不一致性(HTTP请求私运)
Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。 Netty 4.1.42.Final之前版本中存在安全漏洞。攻击者可利用该漏洞实施HTTP请求走私攻击。
CVE-2019-16869 MPS-2019-12064
2022-08-08 18:08
FasterXML jackson-databind 代码问题漏洞
反序列化
2.9.10.8 之前的 FasterXML jackson-databind 2.x 错误处理了与 org.apache.commons.dbcp2.datasources.PerUserPoolDataSource 相关的序列化小工具和类型之间的交互。
CVE-2020-35490 MPS-2020-17696
2022-08-08 18:08
MySQL JDBC XXE漏洞
XXE
Oracle MySQL是美国甲骨文(Oracle)公司的一套开源的关系数据库管理系统。 Oracle MySQL 的 MySQL Connectors 产品中存在XXE漏洞,造成漏洞的原因主要是因为getSource方法未对传入的XML格式数据进行检验。导致攻击者可构造恶意的XML数据引入外部实体,造成XXE攻击。攻击者可能利用该漏洞进行任意文件读取。
CVE-2021-2471 MPS-2020-38350
2022-08-08 18:08
FasterXML jackson-databind 代码问题漏洞
反序列化
2.9.10.8 之前的 FasterXML jackson-databind 2.x 错误处理了与 org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS 相关的序列化小工具和类型之间的交互。
CVE-2020-36180 MPS-2021-0204
2022-08-08 18:08
FasterXML jackson-databind 代码问题漏洞
反序列化
FasterXML jackson-databind是一个基于JAVA可以将XML和JSON等数据格式与JAVA对象进行转换的库。Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 FasterXML jackson-databind 2.x before 2.9.10.8 存在代码问题漏洞,该漏洞源于org.apache.tomcat.dbcp.dbcp2.datasources.PerUserPoolDataSource错误地处理serialization gadgets 和 typing的交互。
CVE-2020-36184 MPS-2021-0207
2022-08-08 18:08
FasterXML jackson-databind 代码问题漏洞
反序列化
2.9.10.8 之前的 FasterXML jackson-databind 2.x 错误处理了与 org.apache.tomcat.dbcp.dbcp2.datasources.SharedPoolDataSource 相关的序列化小工具和类型之间的交互。
CVE-2020-36185 MPS-2021-0208
2022-08-08 18:08
org.freemarker:freemarker 存在代码注入漏洞
代码注入
org.freemarker:freemarker 是一个“模板引擎”;基于模板生成文本输出(从 HTML 到自动生成的源代码的任何内容)的通用工具。此软件包的受影响版本容易受到服务器端模板注入 (SSTI) 的攻击。通过允许用户输入 java.security.ProtectionDomain.getClassLoader,模板将可以访问 java 类加载器。这可以进一步用于文件系统访问和代码执行。低权限用户足以利用此漏洞。
MPS-2022-12438
2022-08-08 18:08
spring-beans 远程代码执行漏洞(Spring4Shell)
表达式注入
spring-beans 负责实现 Spring 框架的 IOC 模块。 CVE-2010-1622 中曾出现由于参数自动绑定机制导致的问题, 通过黑名单的方式修复了该漏洞,但是 JDK9之后引入了 Module,使得可以通过 getModule 绕过前者的黑名单限制,导致远程代码执行。 org.springframework:spring-beans的5.3.0 至 5.3.17、5.2.0.RELEASE 至 5.2.19.RELEASE 版本都受到影响。
CVE-2022-22965 MPS-2022-6820
2022-08-08 18:08
Google Guava 访问控制错误漏洞
关键资源的不正确权限授予
Google Guava是美国谷歌(Google)公司的一款包括图形库、函数类型、I/O和字符串处理等的Java核心库。 Guava 30.0版本之前存在访问控制错误漏洞,该漏洞源于Guava存在一个临时目录创建漏洞,允许访问机器的攻击者可利用该漏洞潜在地访问由Guava com.google.common.io. Files. createTempDir() 创建的临时目录中的数据。攻击者可以利用该漏洞访问特殊目录。
CVE-2020-8908 MPS-2020-17429
2022-08-08 18:08
FasterXML jackson-databind 代码问题漏洞
反序列化
2.9.10.8 之前的 FasterXML jackson-databind 2.x 错误处理了与 org.docx4j.org.apache.xalan.lib.sql.JNDIConnectionPool 相关的序列化小工具和类型之间的交互。
CVE-2020-36183 MPS-2021-0206
2022-08-08 18:08
FasterXML jackson-databind 代码问题漏洞
反序列化
FasterXML jackson-databind是一个基于JAVA可以将XML和JSON等数据格式与JAVA对象进行转换的库。Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 FasterXML jackson-databind 2.x before 2.9.10.8 存在代码问题漏洞,该漏洞源于com.newrelic.agent.deps.ch.qos.logback.core.db.JNDIConnectionSource错误地处理serialization gadgets 和 typing的交互。
CVE-2020-36188 MPS-2021-0211
2022-08-08 18:08
Spring AMQP 安全漏洞
反序列化
Spring AMQP是将核心 Spring 概念应用于基于 AMQP 的消息传递解决方案的开发。 Spring AMQP存在安全漏洞,该漏洞源于Spring AMQP Message对象,在它的toString()方法中,将反序列化具有内容类型application x-java-serialized-object的消息体。如果调用toString()方法,可以构造一个恶意的java.util.Dictionary对象,该对象可能导致应用程序中100\\%的CPU使用率。
CVE-2021-22097 MPS-2021-18891
2022-08-08 18:08
Oracle MySQL Connectors输入验证错误漏洞
授权机制不恰当
Oracle MySQL是美国甲骨文(Oracle)公司的一套开源的关系数据库管理系统。MySQL Connectors是其中的一个连接使用MySQL的应用程序的驱动程序。Oracle MySQL Connectors (组件: Connector/J) 8.0.27及之前版本存在输入验证错误漏洞。攻击者可利用该漏洞通过多种协议进行网络访问,从而破坏Oracle MySQL Connectors,导致Oracle MySQL Connectors被接管。
CVE-2022-21363 MPS-2021-36587
2022-08-08 18:08
jackson-core BigDecimal类型处理OOM问题
资源管理错误
com.fasterxml.jackson.core:jackson-core 是一个核心 Jackson 抽象,基本的 JSON 流 API 实现 这个包的受影响版本在处理BigDecimal类型时容易OOM,导致拒绝服务 (DoS) 。
MPS-2022-12166
2022-08-08 18:08
c3p0 存在 XXE 漏洞
XXE
c3p0是一款支持高并发的开源JDBC连接池库。 c3p0 0.9.5.4之前版本中存在 XXE 注入漏洞。攻击者可利用该漏洞造成拒绝服务。
CVE-2019-5427 MPS-2019-4274
2022-08-08 18:08
FasterXML jackson-databind 代码问题漏洞
反序列化
2.9.10.8 之前的 FasterXML jackson-databind 2.x 错误处理了与 org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS 相关的序列化小工具和类型之间的交互。
CVE-2020-36181 MPS-2021-0203
2022-08-08 18:08
Apache Log4j 安全漏洞
当攻击者对 Log4j 配置具有写访问权限时,Log4j 1.2 中的 JMSAppender 容易受到不受信任数据的反序列化。攻击者可以提供 TopicBindingName 和 TopicConnectionFactoryBindingName 配置,导致 JMSAppender 执行 JNDI 请求,从而以类似于 CVE-2021-44228 的方式执行远程代码。请注意,此问题仅在专门配置为使用 JMSAppender(不是默认设置)时影响 Log4j 1.2。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2021-4104 MPS-2021-38359
2022-08-08 18:08
Apache Log4j 代码问题漏洞
反序列化
当攻击者对 Log4j 配置具有写访问权限或配置引用攻击者有权访问的 LDAP 服务时,所有 Log4j 1.x 版本中的 JMSSink 都容易受到不受信任数据的反序列化。攻击者可以提供一个 TopicConnectionFactoryBindingName 配置,使 JMSSink 执行 JNDI 请求,从而以类似于 CVE-2021-4104 的方式执行远程代码。请注意,此问题仅在专门配置为使用 JMSSink(不是默认设置)时影响 Log4j 1.x。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2022-23302 MPS-2022-1446
2022-08-08 18:08
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
21 评论
988 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部