xxl-conf

分布式配置管理平台
授权协议 GPL
开发语言 Java
所属分类 服务器软件、 分布式应用/网格
软件类型 开源软件
地区 国产
投 递 者 薛弘阔
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

分布式配置管理平台XXL-CONF

XXL-CONF 是一个分布式配置管理平台,拥有"强一致性、毫秒级动态推送、多环境、多语言、配置监听、权限控制、版本回滚"等特性。现已开放源代码,开箱即用。

输入图片说明

输入图片说明

特性

  • 1、简单: 部署简单、接入灵活方便,一分钟上手;

  • 2、在线管理: 提供配置中心, 通过Web界面在线操作配置数据,直观高效;

  • 3、多环境支持:单个配置中心集群,支持自定义多套环境,管理多个环境的的配置数据;环境之间相互隔离;

  • 4、多数据类型配置:支持多种数据类型配置,如:String、Boolean、Short、Integer、Long、Float、Double 等;

  • 5、多语言支持:提供配置Agent服务,可据此通过Http获取配置数据,从而实现多语言支持。Agent存在Ehcache缓存性能极高,并且支持集群横向扩展;

  • 6、配置变更监听功能:可开发Listener逻辑,监听配置变更事件,可据此动态刷新JDBC连接池等高级功能;

  • 7、毫秒级动态推送: 配置更新后, 实时推送配置信息, 项目中配置数据会实时更新并生效, 不需要重启线上机器;

  • 8、强一致性:保障配置数据的强一致性,提高配置时效性;

  • 9、配置中心HA:配置中心支持集群部署,提供系统可用性;

  • 10、推送服务HA: 配置服务基于ZK集群, 只要集群节点保证存活数量大于N/2N+1, 就可保证服务稳定, 避免单点风险;

  • 11、配置备份: 配置数据同时在ZK与MySQL中存储和备份, 提高配置数据的安全性;

  • 12、多种获取配置方式:支持 "API、 注解、XML占位符" 等多种方式获取配置,可灵活选择使用;

  • 13、兼容Spring原生配置:兼容Spring原生配置方式 "@Value"、"${}" 加载本地配置功能;与分布式配置获取方式隔离,互不干扰;

  • 14、分布式: 支持多业务线接入并统一管理配置信息,支撑分布式业务场景;

  • 15、项目隔离: 以项目为维度管理配置, 方便隔离不同业务线配置;

  • 16、高性能: 通过Ehcache对配置数据做Local Cache, 提高性能;

  • 17、客户端断线重连强化:设置守护线程,周期性检测客户端连接、配置同步,提高异常情况下配置稳定性和时效性;

  • 18、空配置处理:主动缓存null或不存在类型配置,避免配置请求穿透到远程配置Server引发雪崩问题;

  • 19、用户管理:支持在线添加和维护用户,包括普通用户和管理员两种类型用户;

  • 20、配置权限控制;以项目为维度进行配置权限控制,管理员拥有全部项目权限,普通用户只有分配才拥有项目下配置的查看和管理权限;

  • 21、历史版本回滚:记录配置变更历史,方便历史配置版本回溯,默认记录10个历史版本;

  • 22、配置同步:全量检测未同步配置项,使用DB中配置备份数据覆盖ZK中配置数据并推送更新;在配置中心异常恢复、新配置中心集群初始化等场景中十分有效。

  • 23、配置快照:客户端从配置中心获取到的配置数据后,会周期性缓存到本地快照文件中,当从配置中心获取配置失败时,将会使用使用本地快照文件中的配置数据;提高系统可用性;

官方文档

技术交流

 

 

  • XXL-CONF是一款轻量级的开源配置中心项目,由国内大牛许雪里开发.下面是官方对其优点作出的描述: 一个轻量级分布式配置管理平台,拥有"轻量级、秒级动态推送、多环境、跨语言、跨机房、配置监听、权限控制、版本回滚"等特性。现已开放源代码,开箱即用。 开源项目地址: https://gitee.com/xuxueli0323/xxl-conf 鄙人有幸拜读了大神的源码,分享一下自己的理解: 项目分为

  • v1.5.0 新特性 1、配置中心Agent服务增强:针对非Java应用提供Agent服务获取配置,提供同步、异步两种Http请求方式,原生支持 long-polling(Http) 的方式获取配置数据、并实时感知配置变更。同时,强化请求权限校验; 2、配置同步功能:将会检测对应项目下的全部未同步配置项,使用DB中配置数据覆盖ZK中配置数据并推送更新;在配置中心异常恢复、新配置中心集群初始化等场景

 相关资料
  • 在分布式系统中,常困扰我们的还有上线问题。虽然目前有一些优雅重启方案,但实际应用中可能受限于我们系统内部的运行情况而没有办法做到真正的“优雅”。比如我们为了对去下游的流量进行限制,在内存中堆积一些数据,并对堆积设定时间或总量的阈值。在任意阈值达到之后将数据统一发送给下游,以避免频繁的请求超出下游的承载能力而将下游打垮。这种情况下重启要做到优雅就比较难了。 所以我们的目标还是尽量避免采用或者绕过上线

  • 差不多70MIN 面试官人很帅,而且上来就介绍面试流程,整个面试下来感觉很舒服,写算法题的时候也在和面试官沟通确定一些特殊情况 1.自我介绍 2.集中管理平台是什么#面经# 3.发布是怎样实现的 4.Exporter是怎么采集到数据的 (没答好 确实没了解过) 5.交付相关 6.Prometheus规则是怎样的 具体存储在哪里 7.仪表盘数据是哪里来的 Prometheus支持多少台机器 8.怎么

  • Import Path # site_import_path.py import sys import os import site if 'Windows' in sys.platform: SUFFIXES = [ '', 'lib/site-packages', ] else: SUFFIXES = [ 'lib/py

  • Zookeeper提供了一个分层命名空间,允许客户端存储任意数据,如配置数据。Spring Cloud Zookeeper Config是Config Server和Client的替代方案。在特殊的“引导”阶段,配置被加载到Spring环境中。默认情况下,配置存储在/config命名空间中。根据应用程序的名称和模拟解析属性的Spring Cloud Config顺序的活动配置文件,创建多个Prop

  • 我希望产品化并部署我的Kafka Connect应用程序。然而,我对任务有两个问题。最大值设置,这是必需的,非常重要,但具体设置该值的具体内容很模糊。 如果我有一个包含n个分区的主题,我希望从中使用数据并将其写入某个接收器(在我的情况下,我正在写入S3),那么我应该设置什么任务。最大值到?我应该把它设置为n吗?我应该把它设置为2n吗?直觉上,我似乎想将值设置为n,这就是我一直在做的。 如果我更改我

  • 我想在不同的 VM 上配置 Ehcache 实例,并在主机上运行 servlet,将这些缓存用作数据存储。缓存服务器必须形成一个集群,用于分布式缓存。 我搜索了任何地方(谷歌、stackoverflow、Ehachep留档)。但是,我找不到任何足够的“如何”文章。此外,我不可能使用企业产品(Terracotta BigMemory等)。 可以随意假设元素包含如上所述的客户信息。我只需要知道如何通过